我在下面有两个表格。我正在寻找store
中不存在的newid
和sales2
的所有组合,并将它们与sales1
组合。
我希望最终结果是:
sales1
原始表
store newid amount total
123 | 123 | 12.3 | 1
456 | 123 | 45.6 | 2
789 | adsf | 78.9 | 3
321 | 123f | NULL | NULL
789 | 1654 | NULL | NULL
答案 0 :(得分:1)
SELECT
查询。第一个查询将从sales1
表中获取所有行。sales2
表中获取其余行,而这些行在sales1
表中不存在。我们将使用LEFT JOIN
到sales2
的{{1}},并只考虑加入之后sales1
是sales1.id
的那些行。NULL
合并两个查询的结果集。查询
UNION ALL
结果
SELECT
s1.store, s1.newid, s1.amount, s1.total
FROM sales1 s1
UNION ALL
SELECT
s2.store, s2.newid, s2.amount, NULL AS total
FROM sales2 s2
LEFT JOIN sales1 s1
ON s2.store = s1.store AND
s2.newid = s1.newid
WHERE s1.id IS NULL;