Sql 从同一列中选择具有特定多个值的行?
我有一个数据库,其中两个角色不能相互关联,我需要显示任何角色冲突的用户 例如:一名(id 2)会计师不能同时也是一名(id 5)培训师 这必须在不使用CTE的情况下完成Sql 从同一列中选择具有特定多个值的行?,sql,sqlite,Sql,Sqlite,我有一个数据库,其中两个角色不能相互关联,我需要显示任何角色冲突的用户 例如:一名(id 2)会计师不能同时也是一名(id 5)培训师 这必须在不使用CTE的情况下完成 Table a Table b table c --------------- ------------------- ------------ userID | roleID roleID
Table a Table b table c
--------------- ------------------- ------------
userID | roleID roleID | conflictID roleID | Role Name
1 2 2 5 1 chef
1 3 2 accountant
1 5 3 driver
2 3 4 barmaid
2 1 5 trainer
3 2
3 3
结果应该只包含同时具有角色2和角色5的用户ID
userID
------
1
将b表和a表连接两次,以获取具有冲突组合的用户ID:
select distinct a1.userid
from tableb b
join tablea a1 on b.roleID = a1.roleID
join tablea a2 on b.conflictID = a2.roleID
and a1.userID = a2.userID
什么是“CTE”?您没有显示您尝试的内容或表的结构。@Jay Common表Expression@Jay: