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

SELECT que retorna lista de valores que não ocorrem em nenhuma linha


Se você não quiser (explicitamente) usar tabelas temporárias, isso funcionará:
SELECT id FROM (
  (SELECT 1 AS id) UNION ALL
  (SELECT 2 AS id) UNION ALL
  (SELECT 3 AS id) UNION ALL
  (SELECT 4 AS id) UNION ALL
  (SELECT 5 AS id)
) AS list
LEFT JOIN users USING (id)
WHERE users.id IS NULL

No entanto, é muito feio, bastante longo, e tenho dúvidas sobre como ele funcionaria se a lista de IDs fosse longa.