这个 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;
我正在阅读我学校的一些讲义,我看到了这张幻灯片:
章节: 数据集成和 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;