【发布时间】:2014-04-21 22:25:46
【问题描述】:
我有四个表,分别称为 attr、data、extradata 和 syst。我必须执行多个/嵌套内部连接才能从所有 4 个表中获取一些属性,并因此遇到问题。对于某些背景,在“数据”表中有一个名为“ID”的列,我通过数据和额外数据之间的内部连接获得如下:
Select X.ID FROM data X
INNER JOIN extradata XA
ON X.dataID = XA.dataID
WHERE X.data = 'condition1' and NOT XA.additionaldata = 'condition2'
这个 ID 必须与 attr 表中的 ID 匹配,并且与 syst 表中的 ID 相匹配。以下是我目前正在尝试的查询的一个非常简略的版本:
SELECT TOP(10) a.ID
FROM attr AS a
INNER JOIN data AS X ON a.ID =
(
Select X.ID FROM data X
INNER JOIN extradata XA
ON X.dataID = XA.dataID
WHERE X.data = 'condition1' and NOT XA.additionaldata = 'condition2'
)
INNER JOIN syst AS s ON a.sysID = s.sysID
WHERE s.desc = 'condition3'
我的查询(显然)有问题,因此我将不胜感激任何建议。提前致谢!
【问题讨论】:
-
我不清楚你为什么要嵌套而不是仅仅在同一深度进行多个连接。
-
我不知道如何进行多个连接,因为 attr 和 extradata 之间没有公共列。这就是我选择嵌套连接的原因
标签: sql inner-join