create table A(id int, name char(1), state int)
insert A select 1, 'a', 1
union all select 1, 'a', 2
union all select 2, 'b', 1
union all select 2, 'c', 2
union all select 3, 'a', 1
union all select 3, 'a', 1
union all select 4, 'g', 1
select A.* from A
inner join
(select id, name from A group by id, name having count(*)>1)
B on A.id=B.id and A.name=B.name
--result
----------- ---- -----------
1 a 1
1 a 2
3 a 1
3 a 1
create table A(id int, name char(1), state int)
insert A select 1, 'a', 1
union all select 1, 'a', 2
union all select 2, 'b', 1
union all select 2, 'c', 2
union all select 3, 'a', 1
union all select 3, 'a', 1
union all select 4, 'g', 1
select * from A as tmpA
where (select count(*) from A where tmpA.id=id and tmpA.name=name)>1
--result
id name state
----------- ---- -----------
1 a 1
1 a 2
3 a 1
3 a 1