sql >> Database teknologi >  >> RDS >> Mysql

SELECT, der returnerer en liste over værdier, der ikke forekommer i nogen række

Hvis du ikke (eksplicit) ønsker at bruge midlertidige tabeller, vil dette virke:

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

Den er dog ret grim, ret lang, og jeg er i tvivl om, hvordan den ville klare sig, hvis listen over id'er er lang.



  1. NOT NULL begrænsning over et sæt kolonner

  2. Sådan konverteres en varchar-kolonnetype til datotype uden at miste datoerne

  3. Sådan fungerer CHR() i MariaDB

  4. SQL DROP TABLE for begyndere