Когда таблицы имеют одинаковые ключи,
USING помогает сократить код и избежать дублирования столбцов.Объединим заказы и клиентов по общему полю:
SELECT *
FROM orders
JOIN customers USING (customer_id);
То же самое через
ON выглядело бы чуть длиннее и менее лаконично:SELECT *
FROM orders
JOIN customers ON orders.customer_id = customers.customer_id;
С
USING SQL сам убирает дубликаты полей, оставляя одно customer_id в результирующем наборе.Можно соединять и по нескольким ключам:
SELECT *
FROM orders
JOIN shipments USING (order_id, customer_id);
Пример из аналитики: посчитаем сумму заказов по каждому клиенту:
SELECT customer_id,
c.customer_name,
SUM(o.amount) AS total_amount
FROM customers c
JOIN orders o USING (customer_id)
GROUP BY customer_id, c.customer_name
HAVING SUM(o.amount) > 1000
ORDER BY total_amount DESC;
🔥 Используйте
USING, когда имена ключей совпадают — это приём, который улучшает читаемость и уменьшает вероятность ошибок.➡️ SQL Ready | #практика