我有四个表,我需要通过存储过程从所有表中获取数据。 表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'列从所有四个表中获取数据。
我尝试过类似的东西,但是我没有得到正确的数据。我需要将所有记录带到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"
我做错了什么?请帮忙
答案 0 :(得分:4)
在这种情况下尝试使用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'
Here is a sqlfiddle有一个演示供您试用。