Mysql
 sql >> Datenbank >  >> RDS >> Mysql

SELECT, das eine Liste von Werten zurückgibt, die in keiner Zeile vorkommen

Wenn Sie nicht (explizit) temporäre Tabellen verwenden möchten, funktioniert dies:

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

Es ist jedoch ziemlich hässlich, ziemlich lang, und ich bin skeptisch, wie es funktionieren würde, wenn die Liste der IDs lang ist.