我有一个具有以下结构的表
id phone_number message schedule_id
1 | 1212121212 | aaaaa | 12
2 | 2323232323 | bbbbb | 12
3 | 1212121212 | ccccc | 12
4 | 1212121212 | ddddd | 13
我想获取具有相同phone_number和不同schedule_id的行 我使用以下查询来获取具有相同电话号码的行
select * from message group by to_number having count(*)>1;
但是它也将具有不同schedule_id的行分组
有人可以帮我写查询吗?
答案 0 :(得分:1)
您可以使用EXISTS
:
select m.*
from message m
where exists (select 1 from message m1 where m1.to_number = m.to_number and m1.id <> m.id);
您也可以使用GROUP BY
,也只需包括该列:
select to_number, schedule_id
from message
group by to_number, schedule_id
having count(*) > 1;
答案 1 :(得分:1)
您应该对带subqselect的连接使用联接,其计数组由phone_number
select m.*
from message m
inner join (
select phone_number
from message
group by phone_number
having count(*)>1;
) t on t.phone_number = m.phone_number
答案 2 :(得分:0)
这是您所期望的吗?
select distinct phone_number, schedule_id from message;