Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从同一列中选择具有特定多个值的行?_Sql_Sqlite - Fatal编程技术网

Sql 从同一列中选择具有特定多个值的行?

Sql 从同一列中选择具有特定多个值的行?,sql,sqlite,Sql,Sqlite,我有一个数据库,其中两个角色不能相互关联,我需要显示任何角色冲突的用户 例如:一名(id 2)会计师不能同时也是一名(id 5)培训师 这必须在不使用CTE的情况下完成 Table a Table b table c --------------- ------------------- ------------ userID | roleID roleID

我有一个数据库,其中两个角色不能相互关联,我需要显示任何角色冲突的用户

例如:一名(id 2)会计师不能同时也是一名(id 5)培训师

这必须在不使用CTE的情况下完成

     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: