2014-02-12 5 views
0

У меня есть две таблицы с именами: заказы и user_detailsОбъединение двух таблиц вместе со счетом

user_details таблица содержит 4 колонки: ID, имя, адрес, телефон ..

заказов таблица содержит 3 колонки : order_id, id, order_date

id является общим для двух таблиц.

Теперь я хочу присоединиться к этим двум таблицам таким образом, чтобы получить таблицу с одним столбцом (как имя) и другим столбцом (как общее количество заказов).

я пытался использовать счетчик:

SELECT name, COUNT(order_id) FROM orders 
LEFT JOIN user_details 
ON orders.id = user_details.id; 

, но я знаю, что это неправильно ... Что такое правильный подход?

+0

Какова взаимосвязь между user_details и заказы? –

ответ

0

Вы должны использовать групповую функцию для того, чтобы использовать агрегатные функции

SELECT u.name, COUNT(o.order_id) 
FROM orders o 
LEFT JOIN user_details u 
ON o.id = u.id /* make sure you have a correct relation b/w user and order table o.id should point to user id*/ 
GROUP BY u.id 

GROUP BY (Aggregate) Functions

0

Вы должны использовать GROUP BY

SELECT name, COUNT(order_id) FROM orders 
LEFT JOIN user_details 
ON orders.id = user_details.id 
GROUP BY user_details.id; 
0
SELECT ud.name, count(o.order_id) FROM orders o 
JOIN user_details ud 
    ON o.id = ud.id 
GROUP BY ud.id 
Смежные вопросы