首先,要找到 Table1 和 Table2 的交集,我有
SELECT Id FROM Table1
INTERSECT
SELECT Id FROM Table2
或者
SELECT Table1.Id
FROM Table1
INNER JOIN Table2 ON Table1.Id=Table2.Id
现在我想将它插入到 table3 中:
INSERT INTO Table3
SELECT Table1.Id
FROM Table1
INNER JOIN Table2 ON Table1.Id=Table2.Id
但问题是我试图插入的一些 Id 可能已经在 Table3 中(并且 Id 是主键,所以它必须是唯一的)。
我已阅读https://stackoverflow.com/a/5288322/1529630。然后,我在 Table3 中将 Id 重命名为 Id_ 以避免冲突,这样我就可以做到
SELECT DISTINCT Id
FROM Table1 cr LEFT JOIN Table3 c ON cr.Id = c.Id_
WHERE c.Id_ IS NULL
但是当我尝试相交时...
SELECT Id FROM Table2
INTERSECT
SELECT DISTINCT Id
FROM Queue cr LEFT JOIN Excluded c ON cr.Id = c.Id_
WHERE c.Id_ IS NULL
...我得到一个错误。我做错了什么?有更好的方法吗?