将两个表连在一起计数

时间:2014-02-12 07:13:16

标签: mysql left-join

我有两个名为的表:订单 user_details

user_details表包含4列:id,name,address,phone ..

订单表包含3列:order_id,id,order_date

id在两个表中很常见。

现在我想以这样的方式加入这两个表:我得到一个包含一列(作为名称)和另一列(作为订单总数)的表。

我试图使用count:

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

但我知道这是错的......什么是正确的方法?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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;

答案 2 :(得分:0)

SELECT ud.name, count(o.order_id) FROM orders o
JOIN user_details ud
    ON o.id = ud.id
GROUP BY ud.id