簡體   English   中英

從同一列中選擇具有特定多個值的行?

[英]Select rows with specific multiple values from the same column?

我有兩個角色不能相互關聯的數據庫,我需要顯示角色沖突的所有用戶。

例如:(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的userID

userID
------
  1

將b表與a表連接兩次,以獲取具有沖突組合的userID:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM