我有一个连接问题,由于某种原因我无法弄清楚。下面是一个简单的数据示例,其中包含group_id和location_id。我们把这个表命名为location_data。
group_id | location_id | 1 | 12 | 1
---|---|
13 | |
25 | |
25 | |
3 | 14 |
3 | 15 |
11 | |
11 |
使用聚合:
select group_id
from t
group by group_id
having min(location_id) = max(location_id);
如果您想要原始行而不仅仅是group_id
,那么建议使用not exists
:
select t.*
from t
where not exists (select 1
from t t2
where t2.group_id = t.group_id and
t2.location_id <> t.location_id
);