【发布时间】:2013-03-18 19:39:59
【问题描述】:
我有四个表,我需要通过存储过程从所有表中获取数据。 表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"
我做错了什么?请帮忙
【问题讨论】:
-
也许你想要一个左连接而不是一个内连接......但这是一个没有更多信息的猜测
-
我怀疑你想要一个 LEFT OUTER JOIN 而不是 INNER JOIN。表 1 中是否存在表 2、表 3 或表 4 中没有对应行的记录?无论如何,您都想查看 Table1 行吗?在这种情况下,请使用 LEFT OUTER JOIN
-
谢谢你,梅兰妮……是的,我也需要表 1 中的数据……我现在正在尝试你的建议
-
根据您的样本数据,无法加入
Table 3或表4,只能加入表1和表2。 -
@Icarus Table 1 REF2 column = Table3 ref3ID.. 这不可能吗?
标签: c# sql-server-2008 stored-procedures