Mysql
 sql >> Base de données >  >> RDS >> Mysql

obtenir des valeurs qui n'existent pas dans la table mysql

Créez une table temporaire avec vos clés :

CREATE TEMPORARY TABLE mykeys (`key` INT);
INSERT INTO mykeys VALUES (1),(2),(3),(4),(5);

Ensuite, utilisez NOT IN :

SELECT `key`
FROM mykeys
WHERE `key` NOT IN (SELECT `key` FROM mytable)

Enfin, supprimez votre table TEMP si vous devez :

DROP TABLE mykeys

MODIFIER :Ajout de SQLFiddle .

Si vous utilisez PostgreSQL qui prend en charge EXCEPT opérateur , et aussi VALUES peut être utilisée pour créer un ensemble de lignes à partir d'une liste de valeurs, il existe un autre moyen plus simple de le faire sans tables temporaires (SQLFiddle ):

VALUES (1),(2),(3),(4),(5)
EXCEPT
SELECT key FROM mytable