SQL查询按值返回重复行的ID

时间:2018-06-18 22:52:15

标签: mysql sql

鉴于

CREATE TABLE `region` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `parent_region_id` bigint(20) DEFAULT NULL,
  `name` varchar(128) NOT NULL

记录如下:

1|300|new york|
2|300|new york|
3|500|seattle|
4|800|los angeles|
5|999|los angeles|
6|600|huston|
7|600|huston|

如何运行SQL查询,该查询将使用相同的parent_region_id按'name'返回所有重复项。例如,根据上面给出的数据,我应该得到两个结果:

1,2 
6,7

但不是

4,5

谢谢!

2 个答案:

答案 0 :(得分:0)

SELECT id, COUNT(*) c 
FROM region 
GROUP BY name 
HAVING c > 1

答案 1 :(得分:0)

桌上的自我加入怎么样

select t1.id,
t2.id
from region t1 
inner join region t2
on t1.name = t2.name
and t1.parent_region_id = t2.parent_region_id
and t1.id <> t2.id
相关问题