まず、私が持っている 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
...エラーが発生します。私が間違っていることは何ですか?それを行うより良い方法はありますか?