#820

Upptäck en lömsk NULL-bugg och gå runt den

Frågan "hitta kunder som inte har några beställningar" formulerad med NOT IN bär på en otäck bugg: om delfrågan innehåller så mycket som en enda NULL-rad returnerar hela NOT IN tyst noll rader — inget fel, ingen varning. En klassisk fälla med trevärd logik i SQL. Den säkra motsvarigheten är NOT EXISTS: den returnerar en rad när den inre frågan inte hittade något, och är immun mot NULL. Skriv om kontrollen "kunder utan beställningar" med NOT EXISTS så att frågan fungerar korrekt även med NULL i datan. Visa id och e-post för sådana kunder, sortera efter id.

Exempel på förväntad utdata

Så här ser ett korrekt svar ut — radantalet är dess eget, det behöver inte matcha schematabellerna.

idemail
3новый@email

Ditt frågeresultat visas här