假设表(我的)SQL JOIN - 获得与准确指定成员的团队
team: id, title
team_user: id_team, id_user
我想选择与公正,只有指定的会员队伍。在这个例子中,我希望团队中唯一的用户是ID为1和5的用户,而不是其他用户。我想出了这个SQL,但对于这么简单的任务似乎有点矫枉过正。
SELECT team.*, COUNT(`team_user`.id_user) AS cnt
FROM `team`
JOIN `team_user` user0 ON `user0`.id_team = `team`.id AND `user0`.id_user = 1
JOIN `team_user` user1 ON `user1`.id_team = `team`.id AND `user1`.id_user = 5
JOIN `team_user` ON `team_user`.id_team = `team`.id
GROUP BY `team`.id
HAVING cnt = 2
编辑:谢谢大家的帮助。如果你想真正地尝试一下你的想法,你可以使用例如数据库结构和数据在这里找到:http://down.lipe.cz/team_members.sql
空结果集:/ – sKopheK
糟糕,应该有已经是SUM,而不是COUNT。我纠正了我的输入。顺便说一句,你的数据不包含id_user 5.这是一个SQLFiddle,查询1,3:http://sqlfiddle.com/#!2/19d5e/20 –
希望不提供不必要的数据。你的解决方案似乎适用于我。 – sKopheK