🔹 Подзапросы в SQL: WHERE, FROM, SELECT 🔹 Где можно ставить subquery и зачем? 🔸 subquery в SQL (Structured Query Language) позволяет вложить один запрос в другой, чтобы вычислить критерий или агрегат без множества временных таблиц.
🔸 В WHERE используются для фильтрации по набору (IN/EXISTS) когда условие зависит от другой таблицы.
🔸 В FROM — как derived table (временная таблица) для дальнейшей агрегации. В SELECT — скалярный subquery для одного вычисленного значения. WITH (CTE, Common Table Expression) делает такие шаги читаемыми и переиспользуемыми.
🔸 Performance: субзапросы удобны, но JOIN или WITH часто дают лучший план. Сравнивайте план выполнения и заменяйте subquery на JOIN, если видите тормоза.
-- WHERE SELECT * FROM orders WHERE customer_id IN (SELECT id FROM customers WHERE vip=1);
-- FROM SELECT t.customer_id, SUM(t.amount) FROM (SELECT customer_id, amount FROM orders) AS t GROUP BY t.customer_id;
-- SELECT scalar SELECT id, (SELECT COUNT(*) FROM orders o WHERE o.customer_id=c.id) AS orders_cnt FROM customers c;
📚 Используйте WITH для читаемости; тестируйте performance и меняйте на JOIN при необходимости.
➡️ Мы в Telegram - Сетке - Дзен Буду рад вашей реакции здесь⬇️
В этом посте были ссылки, но мы их удалили по правилам Сетки