Как отсортировать результат из одного запроса SQL с данными из другой таблицы - PullRequest
1 голос
/ 05 ноября 2019

У меня есть база данных с двумя таблицами. В одной таблице у меня есть информация о клиентах с колонкой costumer_id и колонкой costumer_name, и у меня есть таблица с заказами клиентов с колонками order_id и customer_id. Таблицы выглядят так:

Клиенты:

+-------------+---------------+
| customer_id | customer_name |
+-------------+---------------+
|           1 | Joe           |
|           2 | Michael       |
|           3 | Ben           |
+-------------+---------------+

Заказы:

+----------+-------------+
| order_id | customer_id |
+----------+-------------+
|        1 |           1 |
|        2 |           2 |
|        3 |           3 |
+----------+-------------+

Теперь у меня есть следующий запрос, который дает мне количество заказов от каждогокостюмер. Результаты упорядочены по customer_id.

SELECT customer_id, COUNT(order_id) 
FROM Orders 
GROUP BY customer_id 
ORDER BY customer_id ASC;

Теперь я хочу, чтобы результат был упорядочен по customer_name из таблицы Customer с запросом. Как мне этого добиться?

1 Ответ

1 голос
/ 05 ноября 2019

Вы можете иметь его с идентификатором:

SELECT c.customer_name name
       , COUNT(order_id) sumarum
       , o.customer_id id
FROM Orders O
left join Customers C
on o.customer_id = c.customer_id
GROUP BY customer_name, o.customer_id
ORDER BY c.customer_name, o.customer_id;

Или без идентификатора (просто имя и счет):

select name
       , sumarum
from (SELECT o.customer_id id
       , COUNT(order_id) sumarum
       , c.customer_name name
FROM Orders O
left join Customers C
on o.customer_id = c.customer_id
GROUP BY customer_name, o.customer_id
ORDER BY c.customer_name, o.customer_id);

Вот это DEMO

...