【问题标题】:SQL: All rows of two tables merged togetherSQL:两个表的所有行合并在一起
【发布时间】:2014-05-24 00:36:02
【问题描述】:

我试图在一个 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 行和第 3 行的 FKey_Table2_ID 字段应该是 9 而不是 null

标签: sql sql-server


【解决方案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

【讨论】:

    【解决方案2】:
    SELECT * FROM Table1
    CROSS JOIN
    Table2
    

    【讨论】:

      猜你喜欢
      • 2016-12-21
      • 1970-01-01
      • 2020-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多