从mysql表中选择匹配数据

时间:2016-07-18 11:37:58

标签: mysql

我有两张桌子t1和t2,
表t1包含像

这样的数据
count routingid  addreesid
1        1125      804
3        1125      804
4        304       5 

和表t2包含如下数据

count routingid  addreesid
5        1125      804
7        1125      804
2        303        4 

我正在执行以下查询以仅从t1获取匹配数据

select t1.* from t1 INNER JOIN t2 ON t1.routingid=t2.routingid and t1.addreesid=t2.addreesid

此查询返回以下数据

count routingid  addreesid
5        1125      804
7        1125      804
5        1125      804
7        1125      804

1 个答案:

答案 0 :(得分:2)

因为你有重复,所以并不奇怪。

5        1125      804

t2中的上一行可以连接到以下两行。

5        1125      804
7        1125      804

同样

3        1125      804

也可以加入相同的行。所以这里有四行预期结果,这就是你所拥有的。

目前尚不清楚为什么你甚至有两个具有相同列和明显相同数据的表。你真的应该考虑将它们标准化。

在地毯下扫描问题的临时解决方案是使用不同的

select distinct t1.* from t1 
  INNER JOIN t2 ON t1.routingid=t2.routingid
  and t1.addreesid=t2.addreesid