と重複する可能性があります:
また
SQL データベースに 5 つのフィールドを持つテーブル ( MainTable ) があります。これらのフィールドの 1 つ ( FID ) は、同じデータベース内の他の 5 つのテーブルの外部キーです。もう 1 つのフィールド ( TypeID ) には、キーがたとえば、FID = 1000 で、MainTableのレコードのTypeID =1 の場合、1000 がテーブル番号 1 の主キーであることを意味します。
これらのテーブルを新しいテーブルに結合したいので、ビューを作成し、これらの 5 つのテーブルのそれぞれとMainTableの間で LEFT OUTER JOIN コマンドを使用しました。
Select * From
(Select * From
(Select * From
(Select * From
(Select * From MainTable LEFT OUTER JOIN Table1 ON MainTable.FID=Table1.ID AND MainTable.TypeID=1)AS Temp1
LEFT OUTER JOIN Table2 ON Temp1.FID=Table2.ID AND Temp1.TypeID=2)AS Temp2
LEFT OUTER JOIN Table3 ON Temp2.FID=Table3.ID AND Temp2.TypeID=3)AS Temp3
LEFT OUTER JOIN Table4 ON Temp3.FID=Table4.ID AND Temp3.TypeID=4)AS Temp4
LEFT OUTER JOIN Table5 ON Temp4.FID=Table5.ID AND Temp4.TypeID=5
1)上記のクエリは、この目的に最適ですか?
2)結果テーブルのいくつかの列を特別な列にマージする方法はありますか?つまり、結果が次のような場合:
field1 field2 field3 field4
-------------------------------------------
value1 NULL NULL NULL
NULL value2 NULL NULL
NULL NULL value3 NULL
NULL NULL NULL value4
以下のようなものに変換します:
new_field
------------
value1
value2
value3
value4