表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正在建立一个团队,限制条件是你不能成为多个团队的成员。因此,我正在尝试构建一个查询,以查找那些有资格加入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
问题在于,由于Joe是一名教练,他符合条件~尽管他已经是一名球员。
如何正确地排除已经是球员的用户?