SQL:两个表的所有行合并在一起

时间:2014-05-23 16:32:31

标签: sql sql-server

我试图在select语句中组合两个不同的表,其中第一个表中的所有行都与第二个表中的所有行匹配。例如:

Table1
Table1_ID | FKey_Table2_ID
1           9
2           null

Table2
Table2_ID | Table2_Value
9           Yes
10          No
11          Maybe

需要的结果:

Table1_ID | FKey_Table2_ID | Table2_ID | Table2_Value
1           9                9           Yes
1           null             10          No
1           null             11          Maybe
2           null             9           Yes
2           null             10          No
2           null             11          Maybe

请注意,Table1中的第一行有一个已从Table2分配的密钥。

2 个答案:

答案 0 :(得分:1)

这称为cross join,可以像这样完成:

SELECT Table1_ID, FKey_Table2_ID, Table2_ID, Table2_Value
FROM Table1
CROSS JOIN Table2

或更简单

SELECT Table1_ID, FKey_Table2_ID, Table2_ID, Table2_Value
FROM Table1, Table2

答案 1 :(得分:0)

SELECT * FROM Table1
CROSS JOIN
Table2