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.
| id | |
|---|---|
| 3 | новый@email |
Logga in för att se historik över inskick
Logga inLogga in för att använda AI-mentorn
Logga in