Расширенные объединения
- Использование псевдонимов таблиц
- Использование объединений других типов
- Естественные объединения
- Внешние объединения
- Использование объединений со статистическими функциями
- Использование объединений и условий объединения
Использование объединений со статистическими функциями
Рассмотрим пример. Допустим, вы хотите выбрать список всех клиентов и число сделанных ими заказов. Чтобы получить искомое, в следующем коде применяется функция COUNT() .
FROM Customers INNER JOIN Orders
ON Customers.cust_id = Orders.cust_id GROUP BY Customers.cust_id;
cust_id num_ord
----------- -------------
1000000001 2
1000000003 1
1000000004 1
1000000005 1
В этом операторе SELECT используются ключевые слова INNER JOIN для связи таблиц Customers и Orders между собой. Предложение GROUP BY служит для получения итоговых данных по клиентам, и, таким образом, обращение к функции COUNT (Orders.order_num) позволяет подсчитать количество заказов каждого клиента и возвратить результат в виде столбца num_ord.
Статистические функции можно использовать с объединениями других типов:
num_ord
FROM Customers LEFT OUTER JOIN Orders
ON Customers.cust_id = Orders.cust_id GROUP BY Customers.cust_id;
cust_id num_ord
---------- ----------------
1000000001 2
1000000002 0
1000000003 1
1000000004 1
1000000005 1
В этом примере используется левое внешнее объединение для включения в результат всех клиентов, даже тех, которые не сделали ни одного заказа. Как видите, клиент 1000000002 также включен в результат, хотя на данный момент у него было 0 заказов.



