TSQL连接三个表,其中没有一个公共列

时间:2014-09-30 14:32:21

标签: sql-server tsql join

这可能很简单,因为我非常新手。

我有两个从Excel导入的表,而且我需要根据电子表格中的电子邮件地址更新现有的电子邮件地址表。

我唯一的问题是我无法加入公共列,因为没有一个表共享一列。

所以我想知道,在加入中,我是否可以放一些像

这样的东西
FROM table a
INNER JOIN table b ON b.column 'name' = a.column 'nameplus' `

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

没有匹配谓词的连接可以有效地实现为cross join:即表A中的每一行都与表B中的每一行匹配。

如果您指定了INNER JOIN,那么您必须拥有一个ON字词,该字词可以与某些内容匹配,也可以不匹配:在您的示例中,您可能有技术匹配(即{{1}确实 - 或许完全巧合 - 匹配b.column)没有任何商业意义。

所以你要么

  • a a.column:无法链接表格,但结果是所有可能的行组合

或者:

  • CROSS JOIN您必须在其中指定行的组合方式(如果您想要包含来自任意一方的所有行,则必须指定inner join