Sql server TSQL连接三个表,其中没有一个表具有公共列
这可能很简单,因为我是个新手 我有两个从Excel导入的表,我需要根据电子表格中的电子邮件地址更新现有的电子邮件地址表 我唯一的问题是我不能在公共列上联接,因为没有一个表共享一个列 所以我想知道,在一个连接中,我是否可以Sql server TSQL连接三个表,其中没有一个表具有公共列,sql-server,tsql,join,Sql Server,Tsql,Join,这可能很简单,因为我是个新手 我有两个从Excel导入的表,我需要根据电子表格中的电子邮件地址更新现有的电子邮件地址表 我唯一的问题是我不能在公共列上联接,因为没有一个表共享一个列 所以我想知道,在一个连接中,我是否可以 FROM table a INNER JOIN table b ON b.column 'name' = a.column 'nameplus' ` 任何帮助都将不胜感激 没有匹配谓词的连接可以有效地实现为交叉连接:即表A中的每一行都与表B中的每一行匹配 如果您指定了一个内部
FROM table a
INNER JOIN table b ON b.column 'name' = a.column 'nameplus' `
任何帮助都将不胜感激 没有匹配谓词的连接可以有效地实现为
交叉连接
:即表A中的每一行都与表B中的每一行匹配
如果您指定了一个内部联接
,那么您必须在术语上有一个,它要么匹配,要么不匹配:在您的示例中,您可能有一个技术匹配(即b.column
确实匹配-可能完全巧合地匹配a.column
),这没有商业意义
所以你要么
- a
交叉连接
:无法链接表,但结果是所有可能的行组合
或:
- 一个
内部联接
,您必须在其中指定如何组合行(或左/右外部联接
,如果您希望包括任意一侧的所有行,而不考虑匹配度)
显示两个表中的一些示例数据。您的代码不符合要求。此外,标题与有关涉及多少表的说明不匹配。那么,是两个还是三个?哦,我的天啊…我真不敢相信我没有想到交叉连接。这就是我所需要的。非常感谢。一旦我的“我是个傻瓜,所以我必须等待选择答案”等待时间到了,我会选择你的答案。非常感谢@PapaNer-我希望您理解交叉联接
显式地创建了笛卡尔积
。