Mysql 用count连接两个表

Mysql 用count连接两个表,mysql,left-join,Mysql,Left Join,我有两个表名为:orders和user\u details 用户详细信息表包含4列:id、姓名、地址、电话 订单表包含3列:订单id、id、订单日期 id在这两个表中是通用的 现在我想以这样一种方式连接这两个表,即得到一个表,其中一列作为名称,另一列作为订单总数 我尝试使用count: SELECT name, COUNT(order_id) FROM orders LEFT JOIN user_details ON orders.id = user_details.id; 但是我知道这是错误

我有两个表名为:orders和user\u details

用户详细信息表包含4列:id、姓名、地址、电话

订单表包含3列:订单id、id、订单日期

id在这两个表中是通用的

现在我想以这样一种方式连接这两个表,即得到一个表,其中一列作为名称,另一列作为订单总数

我尝试使用count:

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

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

为了使用聚合函数,应该使用group函数

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
您需要使用分组方式


用户详细信息和订单之间的关系是什么?
SELECT name, COUNT(order_id) FROM orders
LEFT JOIN user_details
ON orders.id = user_details.id
GROUP BY user_details.id;
SELECT ud.name, count(o.order_id) FROM orders o
JOIN user_details ud
    ON o.id = ud.id
GROUP BY ud.id