自连接查询问题,用于获取id在另一个字段中共享相同值的行



我有一个连接问题,由于某种原因我无法弄清楚。下面是一个简单的数据示例,其中包含group_id和location_id。我们把这个表命名为location_data。

tbody> <<tr>12244
group_id location_id
112
13
25
25
314
315
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
);

最新更新