NOT IN
次のように述語を使用できます。
SELECT *
FROM YourTableName
WHERE ReferenceId NOT IN(10437, 10476, 13212, 13215);
更新:存在する ID が必要な場合は、IN
述語を使用します。
SELECT *
FROM YourTableName
WHERE ReferenceId IN (10437, 10476, 13212, 13215);
更新 2:これを解決するには、テーブルに存在しない ID のリストから ID のリストが必要です。考え方は同じだけど逆
SELECT FROM (list of ids) WHERE id NOT IN (SELECT referenceid from Table);
これではない:
SELECT FROM Table WHERE id not in (list of ids ) will give you the other list;
これにより、IDのリストに存在しないテーブルからのIDのリストが得られるためです。
これは次のように行うことができます。
SELECT *
FROM
(
SELECT 10437 id
UNION ALL
SELECT 10476
UNION ALL
SELECT 13212
UNION ALL
SELECT 13215
) t1
WHERE id NOT IN (SELECT referenceid FROM YourTableName);
または次のRIGHT JOIN
ように:
SELECT t2.Id
FROM YourTableName t1
RIGHT JOIN
( SELECT 10437 id
UNION ALL
SELECT 10476
UNION ALL
SELECT 13212
UNION ALL
SELECT 13215
) t2 ON t1.ReferenceID = t2.id
WHERE t1.referenceid IS NULL;
両方とも次のように返されます。
10476
13212