#820

Spoor een sluwe NULL-bug op en omzeil deze

De query «vind klanten die geen bestellingen hebben», geformuleerd met NOT IN, bevat een vervelende bug: als de subquery zelfs maar één NULL-rij bevat, geeft de hele NOT IN stilletjes nul rijen terug — geen fout, geen waarschuwing. Een klassieke valkuil van de driewaardige logica in SQL. Het veilige equivalent is NOT EXISTS: het geeft een rij terug wanneer de binnenste query niets heeft gevonden, en is immuun voor NULL. Herschrijf de controle «klanten zonder bestellingen» met NOT EXISTS zodat de query correct werkt, zelfs met NULL in de data. Toon het id en e-mailadres van zulke klanten, sorteer op id.

Voorbeeld van verwachte uitvoer

Zo ziet een correct antwoord eruit — het aantal rijen is op zichzelf staand en hoeft niet overeen te komen met de schematabellen.

idemail
3новый@email

Je queryresultaat verschijnt hier