Занятие 28. Summary session 7
⚡ Кратко: команды
WHERE column IN (SELECT ...)FROM (SELECT ...) AS aliasWITH name AS (SELECT ...) SELECT ...LEFT JOIN ... IS NULLдля поиска отсутствующих связей.
🔖 Справочник операторов
Скалярный подзапрос
SELECT *
FROM order_details
WHERE unit_price > (
SELECT AVG(unit_price) FROM order_details
);
Многострочный подзапрос с IN
SELECT *
FROM orders
WHERE employee_id IN (
SELECT id FROM employees WHERE job_title = 'Sales Representative'
);
Подзапрос в FROM
SELECT p.product_name, ps.total_orders
FROM (
SELECT product_id, COUNT(*) AS total_orders
FROM order_details
GROUP BY product_id
) AS ps
JOIN products AS p ON ps.product_id = p.id;
CTE
WITH avg_price AS (
SELECT AVG(unit_price) AS ap FROM order_details
)
SELECT *
FROM order_details
WHERE unit_price > (SELECT ap FROM avg_price);
Поиск отсутствующих связей через LEFT JOIN
SELECT e.first_name, e.last_name
FROM employees AS e
LEFT JOIN employee_privileges AS ep ON e.id = ep.employee_id
WHERE ep.employee_id IS NULL;
🔗 Полный справочник
Более полный каталог SQL-операторов курса — в справочнике SQL.