🔹 Где можно ставить 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 cus