Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

obtendo valores que não existem na tabela mysql


Crie uma tabela temporária com suas chaves:
CREATE TEMPORARY TABLE mykeys (`key` INT);
INSERT INTO mykeys VALUES (1),(2),(3),(4),(5);

Então use NOT IN:
SELECT `key`
FROM mykeys
WHERE `key` NOT IN (SELECT `key` FROM mytable)

Por fim, elimine sua tabela TEMP se precisar:
DROP TABLE mykeys

EDITAR :Adicionado SQLFiddle .

Se você estiver usando o PostgreSQL que suporta EXCEPT operador , e também VALUES pode ser usada para criar um conjunto de linhas da lista de valores, existe outra maneira mais fácil de fazer isso sem tabelas temporárias (SQLFiddle ):
VALUES (1),(2),(3),(4),(5)
EXCEPT
SELECT key FROM mytable