Utwórz tabelę tymczasową ze swoimi kluczami:
CREATE TEMPORARY TABLE mykeys (`key` INT);
INSERT INTO mykeys VALUES (1),(2),(3),(4),(5);
Następnie użyj NOT IN:
SELECT `key`
FROM mykeys
WHERE `key` NOT IN (SELECT `key` FROM mytable)
Na koniec upuść tabelę TEMP, jeśli musisz:
DROP TABLE mykeys
EDYTUJ :dodano SQLFiddle .
Jeśli używasz PostgreSQL, który obsługuje EXCEPT
operator
, a także VALUES
Instrukcja może być użyta do stworzenia zestawu wierszy z listy wartości, istnieje inny, łatwiejszy sposób na zrobienie tego bez tabel tymczasowych (SQLFiddle
):
VALUES (1),(2),(3),(4),(5)
EXCEPT
SELECT key FROM mytable