結合を使用して次のSQLクエリを作成する方法を教えてください。未使用はもちろん、出来れば状態の良い所も交換したいです。
SELECT d1.Short_Code
FROM domain1 d1
WHERE d1.Short_Code NOT IN (
SELECT d2.Short_Code
FROM Domain2 d2
)
SQL Server 2008 を使用しています
結合を使用して次のSQLクエリを作成する方法を教えてください。未使用はもちろん、出来れば状態の良い所も交換したいです。
SELECT d1.Short_Code
FROM domain1 d1
WHERE d1.Short_Code NOT IN (
SELECT d2.Short_Code
FROM Domain2 d2
)
SQL Server 2008 を使用しています
この記事:
あなたに興味があるならそうかもしれません。
一言で言えば、このクエリ:
SELECT d1.short_code
FROM domain1 d1
LEFT JOIN
domain2 d2
ON d2.short_code = d1.short_code
WHERE d2.short_code IS NULL
NOT NULL動作しますが、 (またはNOT EXISTS)構成よりも効率が低くなります。
これを使用することもできます:
SELECT short_code
FROM domain1
EXCEPT
SELECT short_code
FROM domain2
これはどちらNOT INも使用していませんWHERE(さらには結合も使用していません!)が、重複がdomain1.short_codeある場合はすべて削除されます。
SELECT d1.Short_Code
FROM domain1 d1
LEFT JOIN domain2 d2
ON d1.Short_Code = d2.Short_Code
WHERE d2.Short_Code IS NULL
私ならNOT EXISTSこの場合を選びます。
SELECT D1.ShortCode
FROM Domain1 D1
WHERE NOT EXISTS
(SELECT 'X'
FROM Domain2 D2
WHERE D2.ShortCode = D1.ShortCode
)