Mysql连接提供重复的行

时间:2011-06-15 02:42:09

标签: mysql join left-join

我有2个表,我正在使用join从这两个表中获取常用记录。我使用了以下查询但我的问题是我得到的记录加倍。查询如下

SELECT * FROM pos_metrics pm INNER JOIN pos_product_selling pps ON   
pm.p_id=pps.p_id WHERE pm.p_id='0' AND pps.pos_buying_id='0' AND pm.type=1

pos_metrics表:
enter image description here

pos_product_selling表: enter image description here

输出:

enter image description here

EDIT
当我尝试一起使用GROUP BY和DISTINCT时,我没有得到重复项,但重复了第二个表中的值。还有其他解决方案吗?

5 个答案:

答案 0 :(得分:14)

尝试类似这样的事情

GROUP BY pos_product_selling.metrics

答案 1 :(得分:8)

试试这个:

SELECT DISTINCT * FROM ...
GROUP BY pm.metrics

答案 2 :(得分:5)

pos_metrics表中添加主键并将其引入pos_product_selling表,然后根据主键和其他条件执行JOIN。那么你不会得到这些重复的。

这里有重复的原因是因为不可能根据值对两个表进行唯一比较。

答案 3 :(得分:4)

要消除重复,请使用distinct:

select distinct * from ...

但我觉得你的问题是关于其他事情的 - 而且你需要发布特定代码以获得更多帮助。

答案 4 :(得分:1)

SELECT * FROM pos_metrics pm, pos_product_selling pps
Where pm.p_id=pps.p_id AND pm.p_id='0' AND pps.pos_buying_id='0' AND pm.type=1

尝试以上查询