【发布时间】:2016-04-06 07:08:47
【问题描述】:
我正在尝试像这样加入两个表:
表 A
ID Value1
1 A
2 B
3 C
表 B
ID Value2
1 A
3 B
4 C
结果应该是:
ID Value1 Value2
1 A A
2 B null
3 C B
4 null C
即在 ID 上将表 A 连接到表 B。如果表 A 中不存在 ID,则添加表 B 中的 ID。
我最接近的是:
SELECT
a.ID, a.Value1, b.Value2
FROM
TableA a
OUTER JOIN
TableB b ON a.ID = b.ID
这给了我来自 TableB 的新行,但 ID 为空。
我怎样才能做到这一点?
【问题讨论】:
-
LEFT JOIN 是要走的路。
-
Left join 将无法获得预期的结果。
-
LEFT JOIN 不添加最后一行,它只是添加 Value2 列。 OUTER JOIN 添加 Value2 列和最后一行,但不添加该行中的 ID。
-
什么具体的RDBMS是干什么用的? SQL 只是查询语言 - 但这并没有涵盖 SQL 标准的所有特定于供应商的扩展/解释......请添加相关标签,如
oracle、sql-server、postgresql、@987654328 @ 或您可能正在使用的其他任何内容.... -
@marc_s 对不起,是甲骨文。修复了标签。