Библиотека баз данных
10.5K subscribers
210 photos
7 videos
27 files
220 links
Самая большая библиотека бесплатных книг по SQL

По всем вопросам- @haarrp

@ai_machinelearning_big_data - machine learning

@pythonl - Python

@itchannels_telegram - 🔥 best it channels

@ArtificialIntelligencedl - AI

РКН:  № 5037640984
Download Telegram
💡 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
);
👍8🔥62