这是我的数据库项目。
表用户_
select id, name from user_;
id | name
----+----------
1 | bartek
2 | bartek_m
3 | bartek_k
4 | bartek_b
表订单_
select id, employee_id, user_id from order_;
id | employee_id | user_id
----+-------------+---------
1 | 3 | 1
2 | 4 | 1
3 | 4 | 1
4 | 4 | 1
5 | 3 | 1
每个用户都有一个角色(我不在这里添加表role_但它存在)。 可以将具有角色员工的每个用户的ID分配给order_.employee_id 我需要获得最少订单数的用户
select a.id, min(a.count) from (
select u.id, count(u.id) from user_ u, order_ o
where u.id = o.employee_id
group by u.id
) as a group by a.id, a.count
id | min
----+-----
4 | 3
3 | 2
我认为我的查询错了。任何人都可以更改查询以返回 只有这个用户拥有最少订单数的ID?
答案 0 :(得分:1)
像
SELECT u.id, count(*)
FROM user_ AS u JOIN order_ AS o ON (u.id=o.employee_id)
GROUP BY u.id
ORDER BY 2 LIMIT 1
(如果我读对你的话)?