首页 > 解决方案 > (SQL) unique(set) 返回真还是假?

问题描述

为什么这段代码错了?

select id
from s
where not unique(
    select sid
    from sc
    where id=sc.sid
);

我想选择在 sc 中至少出现两次的 s.id

标签: mysqlsql

解决方案


我想选择在 sc 中至少出现两次的 s.id

您可以使用使用聚合的子查询和HAVING子句过滤来使计数等于或大于两个。

SELECT s.id
       FROM s s
       WHERE EXISTS (SELECT ''
                            FROM sc sc
                            WHERE sc.sid = s.id
                            GROUP BY sc.id
                            HAVING count(*) >= 2);

推荐阅读