我有团体和成员,我现在需要检查每个团体是否有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)
但我认为Forward的答案将解决我的问题。
答案 0 :(得分:1)
在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;