【发布时间】:2012-07-19 00:39:45
【问题描述】:
表 1:用户
| profile_id | name |
------------------------
| 1 | Joe |
| 2 | Jane |
| 3 | Jill |
| 4 | Jeffery |
表 2:团队查找的用户和角色
| team_id | profile_id | role |
---------------------------------
| 1 | 1 | coach |
| 1 | 2 | player |
| 2 | 4 | coach |
| 2 | 1 | player |
场景是吉尔正在组建一个团队,限制是你不能成为多个团队的玩家。因此,我正在尝试构建一个查询来吸引那些有资格加入 Jill 团队的人。
我的第一次尝试是:
SELECT `users`.`profile_id`
FROM `users` LEFT JOIN `user_role_to_team_lookup` AS `utr` USING(`profile_id`)
WHERE `utr`.`role` != 'player' OR `utr`.`role` IS NULL
问题是因为乔是教练,他符合标准~尽管他也已经是一名球员了。
从结果集中排除已经是玩家的用户的正确方法是什么?
【问题讨论】: