Открий коварен бъг с NULL и го заобиколи
Заявката «намери клиентите, които нямат нито една поръчка», формулирана с NOT IN, носи неприятен бъг: ако подзаявката съдържа дори един ред с NULL, целият NOT IN тихо връща нула редове — без грешка, без предупреждение. Класически капан на трисъстойностната логика в SQL.
Безопасният еквивалент е NOT EXISTS: връща ред, когато вътрешната заявка не е намерила нищо, и е имунизиран срещу NULL. Пренапиши проверката «клиенти без поръчки» чрез NOT EXISTS, така че заявката да работи коректно дори при NULL в данните. Покажи идентификатора и email на такива клиенти, сортирай по идентификатор.
Примерен очакван изход
Така изглежда правилният отговор — броят редове е негов собствен, не е задължително да съвпада с таблиците в схемата.
| id | |
|---|---|
| 3 | новый@email |
Влез, за да видиш историята на решенията
ВходВлез, за да използваш ИИ ментора
Вход