Группировка

Что такое группировка: определение, основные принципы, примеры и практические советы. Изучайте SQL для тестировщиков с подробными объяснениями для начинающих специалистов.

Группировка.

Группировка данных.

ОператорОписаниеПримеры применения
GROUP BYПереход от работы с записями к работе с группамиGROUP BY department - группировка по отделам
HAVINGУсловие для групп, вместо оператора WHEREHAVING COUNT(*) > 5 - группы с >5 записей

Виды объединений таблиц (джоинов).

JOIN — Обновить таблицы.

INNER JOIN — выводит только совпадения из обеих таблиц.

LEFT JOIN — все данные из левой таблицы и только совпадения из правой.

RIGHT JOIN — все данные из правой таблицы и только совпадения из левой.

FULL JOIN — выводятся все данные из обеих таблиц.

SELECT поля_таблиц FROM таблица_1
[INNER] | [[LEFT | RIGHT | FULL][OUTER]] JOIN
таблица_2 ON условие_соединения
[[INNER] | [[LEFT | RIGHT | FULL][OUTER]] JOIN
таблица_n ON условие_соединения];

Практические примеры:

-- INNER JOIN - только совпадающие записи
SELECT u.username, p.name, p.price
FROM users u
INNER JOIN orders o ON u.id = o.user_id
INNER JOIN products p ON o.product_id = p.id;

-- LEFT JOIN - все пользователи, даже без заказов
SELECT u.username, COUNT(o.id) as order_count
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
GROUP BY u.id, u.username;

-- RIGHT JOIN - все продукты, даже не заказанные
SELECT p.name, COUNT(o.id) as order_count
FROM orders o
RIGHT JOIN products p ON o.product_id = p.id
GROUP BY p.id, p.name;

-- FULL OUTER JOIN - все записи из обеих таблиц
SELECT u.username, o.order_date
FROM users u
FULL OUTER JOIN orders o ON u.id = o.user_id;