【问题标题】:Adding more joins to a select向选择添加更多连接
【发布时间】:2015-03-20 19:42:52
【问题描述】:

我在尝试向选择添加 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

但我需要获取更多信息,所以我尝试了这样的操作(添加了最后 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
INNER JOIN TABLE6 G ON A.ID = B.ID
LEFT JOIN TABLE3 H ON G.COORDINATOR = H.USER_NAME

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

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

【问题讨论】:

  • 您为什么要在 A.ID = B.ID 上加入表 G?您不想在连接条件中使用 G 中的某些列吗?

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


【解决方案1】:

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

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

应该是这样的:

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

附带说明,我希望您在实际代码中使用比 A、B、C 等更有意义的表别名。 ;-)

【讨论】:

  • 鉴于这显然不是他真正的查询,如果这是答案,我会感到惊讶。他没有加入 Table6 并不完全正确。他实际上是在进行交叉连接。
猜你喜欢
  • 2012-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-07
  • 2010-10-07
相关资源
最近更新 更多