Mysql 如果所有对应的行都没有';不符合一定条件
我有一个表Mysql 如果所有对应的行都没有';不符合一定条件,mysql,sql,Mysql,Sql,我有一个表CallTable,列名为caller\u id和Is\u picked\u up,其中包含是否已拾取的状态 Caller_id Is_picked 1 no 1 yes 1 no 2 no 3 no 我要那些从未接过电话的人。在上述情况下,2和3将是输出。您可以通过分组每个唯一的调用方id,并检查是否拾取了的条件计数
CallTable
,列名为caller\u id
和Is\u picked\u up
,其中包含是否已拾取的状态
Caller_id Is_picked
1 no
1 yes
1 no
2 no
3 no
我要那些从未接过电话的人。在上述情况下,2和3将是输出。您可以通过
分组每个唯一的调用方id
,并检查是否拾取了的条件计数的列值yes在组中为0:
select `Caller_id`
from `CallTable`
group by `Caller_id`
having sum(`Is_picked` = 'yes') = 0
您可以使用exists
操作符执行此操作:
SELECT DISTINCT caller_id
FROM call_table a
WHERE NOT EXISTS (SELECT *
FROM call_table b
WHERE a.caller_id = b.called_id AND is_picked = 'yes')
使用子查询获取在列中至少有一个“yes”的所有记录将被选中
并使用不在
条件下
SELECT DISTINCT CALLER_ID FROM CallTable C1 where C1.CALLER_ID not in
(SELECT distinct CALLER_ID C2 FROM CallTable C2 having count(is_picked = "yes") > 1 );
SQLFiddle演示:@VishalZanzrukia:感谢您将小提琴组装在一起