簡體   English   中英

SQL選擇多行驗證條件的用戶

[英]SQL Select users with condition verified in multiple rows

我有下表:

表服務 - 用戶

第一列包含Services_ID ,第二列包含Users_ID ,第三列表示用戶是否已啟用該服務。 我需要識別(一次是用戶)哪個用戶可以使用ID 4和5的兩種服務。

我用Mysql寫了那個查詢:

SELECT DISTINCT User 
  FROM tablexxx
 WHERE Service IN (4, 5)
   AND User NOT IN (SELECT User
                      FROM tablexxx
                     WHERE Service IN (4, 5)
                       AND Active = FALSE);

該查詢有效,但是,是否有更好的技術方法來編寫它?

正確的結果是:

結果

select user
from your_table
where service in (4,5)
and active = TRUE
group by user
having count(distinct service) = 2

要么

select user
from your_table
group by user
having sum(active = TRUE and service = 4) > 0
   and sum(active = TRUE and service = 5) > 0

暫無
暫無

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

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