2.5Kпросмотров
23.4%от подписчиков
15 января 2026 г.
Score: 2.7K
💡 SQL-совет, который спасает от самой “хитрой” ошибки Одна из самых коварных ситуаций в SQL - когда ты ожидаешь данные, а запрос возвращает 0 строк, хотя “всё правильно”.
Чаще всего причина - NOT IN + NULL. Если в подзапросе есть хотя бы один NULL, то NOT IN ломает логику и не вернёт ничего. Правило:
- ❌ Не используй NOT IN с подзапросами
- ✅ Используй NOT EXISTS или LEFT JOIN ... IS NULL -- ❌ ПЛОХО: NOT IN ломается из-за NULL SELECT FROM users u
WHERE u.id NOT IN ( SELECT user_id FROM banned_users
); -- ✅ ХОРОШО: NOT EXISTS безопасен SELECT FROM users u
WHERE NOT EXISTS ( SELECT 1 FROM banned_users b WHERE b.user_id = u.id
);