MySQL查询选择5个成员或更高的组
问题描述:
我有团队和成员,我需要现在检查每个组,如果它有5个成员或更高。所以我需要的一切只是获得一行或没有。 这是我到目前为止已经试过:MySQL查询选择5个成员或更高的组
SELECT groups.id, COUNT(user_groups.user_id) as group_user_count
FROM groups
INNER JOIN user_groups ON user_groups.group_id = groups.id
WHERE groups.id = $group_id AND IFNULL(group_user_count, 0) >= 5;
但是,这是给我未知列group_user_count
编辑
表结构设计:
groups:
- id (PK)
users:
- id (PK)
- name
user_groups:
- id (PK)
- user_id (FK)
- group_id (FK)
但我认为前锋的答案将解决我的问题。
答
在where
条款,你不应该使用列别名,尝试使用having
:
SELECT groups.id, COUNT(user_groups.user_id) as group_user_count
FROM groups
INNER JOIN user_groups ON user_groups.group_id = groups.id
WHERE groups.id = $group_id
HAVING IFNULL(group_user_count, 0) >= 5;
怎么样显示表结构,样本数据,预期的结果?那些可以帮助我们在您的问题上支持您而无需猜测的旧事物? –
在这里,但我认为前锋的答案将解决我的问题 –