这个 SQL 语句 "WHERE table_a.key (+)= table_b.key" 是什么意思?

What does this SQL statement "WHERE table_a.key (+)= table_b.key" means?

我正在阅读我学校的一些讲义,我看到了这张幻灯片:

章节: 数据集成和 ETL 过程

幻灯片标题: 重复值问题

正文: 重复值总是存在的。消除可能很耗时,尽管执行起来很简单。

SQL 示例:

SELECT ...
FROM table_a, table_b
WHERE table_a.key (+)= table_b.key
UNION
SELECT ...
FROM table_a, table_b
WHERE table_a.key = table_b.key (+);

具体我没看懂(+)=和最后(+)的意思。

感谢您的帮助!

这意味着您应该停止在 where 子句中使用带有条件的旧式联接并且 始终 使用显式 join 语法。

对于您的特定查询,等效项是 full outer join:

SELECT ...
FROM table_a FULL OUTER JOIN
     table_b
     ON table_a.key = table_b.key;