【发布时间】:2015-05-26 02:26:09
【问题描述】:
我有三个相关的表users、groups 和group_members。 users 表包含users 信息,groups 表包含组名和组所有者ID(即users_id)。表group_members 包含每个组的成员(user_id 和group_id)。我尝试加载每个组的用户详细信息,但结果不正确。我的桌子是,
用户
id firstname lastname email
1 anu mm anu@gmail.com
2 manu mohan manu@gmail.com
3 cinu ab cinu@gmail.com
4 vinu mj vinu@gmail.com
5 vijesh cc vijesh@gmail.com
6 admin admin admin@gmail.com
群组
id user_id name
1 1 group1
2 2 group2
3 2 group3
4 3 group4
group_members
id user_id group_id
1 1 1
2 2 2
3 2 3
4 3 4
5 2 3
7 1 2
8 1 3
9 3 1
但是当我尝试下面的查询时,
select users.firstname,users.lastname,users.email,groups.name as groupname from users inner join groups on groups.user_id = users.id inner join group_members on group_members.group_id = groups.id where groups.id=3 AND users.firstname LIKE 'cin%' OR users.lastname LIKE 'cin%' OR users.email LIKE 'cin%'
得到结果(这不是预期的)
firstname lastname email groupname
cinu ab cinu@gmail.com group4
在这种情况下,我使用了 where 条件 WHERE groups.id =3,但结果采用了 group4(groups.id 为 4)。请给我一个解决方案。
【问题讨论】:
-
注意 group_members.id 是多余的