【发布时间】:2017-09-09 06:27:35
【问题描述】:
我在连接三个具有不同数据的表时遇到了问题。 假设我有 table1 和 table2 像:
table1 : table2:
ID1 ID2
----- -----
1 102
2 103
我需要将这两个表加入到 table3 中:
table3
------
ID1 ID2
--- ---
1 102
2 103
我在 table1 和 table2 中应用交叉连接,但我得到了:
table3 :
ID1 ID2
--- ---
1 102
2 102
1 103
2 103
【问题讨论】:
-
您如何知道
Table1.ID1 1行与Table2.ID1 102行匹配?按 ID 排序时,是否只是 one 的第一行匹配 next 的第一行? -
如果您假设只有行号将是引擎应该如何连接这些表,那么您需要指定它。您需要为每个表上的每一行创建一个数字,然后将它们加入该新列。交叉连接应该将第一列的每一列与第二列的每一列结合起来,它是两个表的笛卡尔积。可以使用 SQL 中的 ROW_NUMBER() 函数轻松创建该数字。 (docs.microsoft.com/en-us/sql/t-sql/functions/…)
-
是的,我想匹配一个的第一行以匹配第二个的第一行。 @豆蛙
-
向table2添加一行,并调整结果。
标签: sql join sql-server-2012