我有两张桌子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

最佳答案

既然你有复制品就不奇怪了。

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

09-16 07:15