添加更多联接到选择

时间:2015-03-20 19:42:52

标签: sql sql-server sql-server-2008 join

我在尝试向select添加2个连接时遇到了一些麻烦。波纹管对我有用:

FROM
    TABLE1 A
INNER JOIN TABLE2 B ON A.ID = B.ID
LEFT JOIN TABLE3 C ON A.REQUESTED_BY = C.USER_NAME
LEFT JOIN TABLE3 D ON A.COORDINATOR = D.USER_NAME
INNER JOIN TABLE4 E ON A.ID = E.PARENT_ID
INNER JOIN TABLE5 F ON E.ID = F.ID

但是我需要获取更多信息,所以我尝试了这样的事情(添加了最后两行):

FROM
    TABLE1 A
INNER JOIN TABLE2 B ON A.ID = B.ID
LEFT JOIN TABLE3 C ON A.REQUESTED_BY = C.USER_NAME
LEFT JOIN TABLE3 D ON A.COORDINATOR = D.USER_NAME
INNER JOIN TABLE4 E ON A.ID = E.PARENT_ID
INNER JOIN TABLE5 F ON E.ID = F.ID
INNER JOIN TABLE6 G ON A.ID = B.ID
LEFT JOIN TABLE3 H ON G.COORDINATOR = H.USER_NAME

这不应该像它应该的那样工作。

问题:如何添加最后两个连接以使选择有效?感谢。

1 个答案:

答案 0 :(得分:4)

您实际上并未在任何地方加入TABLE6(G)。我认为这次加入:

INNER JOIN TABLE6 G ON A.ID = B.ID

应该是这样的:

INNER JOIN TABLE6 G ON A.ID = G.ID

作为旁注,我希望您在实际代码中使用比A,B,C等更有意义的表别名。 ; - )