我的左表有唯一的行,右表有相同的唯一行+新的唯一行。什么是正确的查询来保留左表中的唯一行(更高质量的数据),并且仅引入右表中不存在于左表中的新行?
答案 0 :(得分:2)
这样的事情怎么样?
SELECT a.id, a.data
FROM table_a
UNION ALL
SELECT b.id, b.data
FROM table_b
WHERE b.id NOT IN (SELECT id FROM table_a)
答案 1 :(得分:1)
你可以联合他们。根据您的DBMS,UNION将删除重复项,UNION ALL将保留它们。
答案 2 :(得分:0)
如果您(由于某种原因)需要使用联接而不是联合,那么可以使用FULL JOIN
并在每列上使用ISNULL()
或COALESCE()
。
这将留下左表中的所有内容以及右表中不存在的所有内容。