0

4つのテーブルがあり、ストアドプロシージャを介してそれらすべてからデータを取得する必要があります。表1がメインテーブルで、次のように配置されています。

ID  REF1  REF2  Data1
 1   01    11    abc
 2   01    22    def
 3   01    33    ghi

表2は次のようになります

ID  ref2ID  Data2
 1    11     a
 2    99     x

表3

ID  ref3ID  Data3
 1    22     b

表4

ID  ref4ID  Data4
 1    33     c

'REF2'列に基づいて4つのテーブルすべてからデータを取得するにはどうすればよいですか。

このようなことを試しましたが、正しいデータが得られません。Data1、Data2、Data3、Data4列のすべてのレコードを持ってくる必要があります

Select Table1.Data1,
       Table2.Data2,
       Table3.Data3,
       Table4.Data4,
From   Table1 INNER JOIN
       Table2 ON Table1.REF2 = Table2.Ref2ID INNER JOIN 
       Table3 ON Table1.REF2 = Table3.Ref3ID INNER JOIN
       Table4 ON Table1.REF2 = Table4.Ref4ID
WHERE  REF1 = "01"

私は何が間違っているのですか?助けてください

4

1 に答える 1

4

この場合は s を試してくださいLEFT JOIN。文字列には一重引用符も使用します。

SELECT Table1.Data1,
       Table2.Data2,
       Table3.Data3,
       Table4.Data4
FROM   Table1 
LEFT JOIN Table2 
    ON Table1.REF2 = Table2.Ref2ID 
LEFT JOIN Table3 
    ON Table1.REF2 = Table3.Ref3ID 
LEFT JOIN Table4 
    ON Table1.REF2 = Table4.Ref4ID
WHERE  REF1 = '01'

これは、試してみるデモ付きの sqlfiddleです。

于 2013-03-18T19:42:46.567 に答える