Mysql 用count连接两个表
我有两个表名为:orders和user\u details 用户详细信息表包含4列:id、姓名、地址、电话 订单表包含3列:订单id、id、订单日期 id在这两个表中是通用的 现在我想以这样一种方式连接这两个表,即得到一个表,其中一列作为名称,另一列作为订单总数 我尝试使用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; 但是我知道这是错误
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