我有两个名为的表:订单和 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;
但我知道这是错的......什么是正确的方法?
答案 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
答案 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