SQL查询;如何仅获取具有两个匹配字段的记录

时间:2014-03-24 15:38:01

标签: sql

我希望我能正确解释这一点,这有点令人困惑。我需要查询具有相同“origin”和相同“destination”的记录。我的每行都有一个起点和一个目的地。我需要看到两者都匹配的那些。因此,例如,如果西雅图(起源)和波特兰(目的地)有一行,我需要查看以西雅图为起点而波特兰为目的地的所有其他记录。另外,我需要查看所有类型匹配的记录。因此,如果有相同来源和相同目的地的记录(不仅仅是西雅图和波特兰),它们也会被显示出来。合理?你能帮忙吗?

2 个答案:

答案 0 :(得分:1)

如果我理解得很好,你想在某些领域找到重复的东西。

你可以做到

select * 
from YourTable t
join (select origin, destination
      from YourTable
      group by origin, destination
      having count(*) > 1) m
on t.origin = m.origin and t.destination = m.destination

如果您不需要所有字段,则可以

select origin, destination, count(*)
from YourTable
group by origin, destination
having count(*) > 1

答案 1 :(得分:0)

我想知道您是否只想对数据进行排序:

select t.*
from table t
order by by origin, destination;

这会将具有公共值的行放在一起。