繁体   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