0

と重複する可能性があります:

複数のテーブルへの外部キーの設定

また

複数の可能性のある外部キー列を持つ has_one

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
4

1 に答える 1

0

私の質問は、この URLで CHill によって回答されました。

于 2013-06-02T07:18:01.907 に答える