Mysql连接提供重复的行

Mysql连接提供重复的行,mysql,join,left-join,Mysql,Join,Left Join,我有两个表,我正在使用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_指标表: pos\u产品\u销售表: 输出: 编辑 当我尝试同时使用GROUPB

我有两个表,我正在使用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_指标表:

pos\u产品\u销售表:

输出:

编辑
当我尝试同时使用GROUPBY和DISTINCT时,我没有得到重复的值,但是第二个表中的值是重复的。任何其他解决方案?

要消除DUP,请使用独特的:

select distinct * from ...
但是我觉得你的问题是关于其他事情的——你需要发布具体的代码以获得更多帮助

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
尝试上述查询

尝试以下操作:

SELECT DISTINCT * FROM ...
GROUP BY pm.metrics
在pos_度量表中添加一个主键,并将其引入pos_product_selling表,然后根据主键和其他条件进行连接。那你就得不到这些复制品了


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

尝试类似的方法

GROUP BY pos_product_selling.metrics

我的感觉是你需要一个团队,但你的问题缺乏背景。嗯,是的,这是预期的结果。您不应该使用类似于:select distinct pm.*from…?内部联接可能会创建只有一个不同列的唯一行,因此distinct可能不会减少结果。这是可行的,但这是正确的方法吗??我在这里处理成千上万张唱片。你说的销售pos产品是什么意思table@RickyB他的意思是在pos_产品销售表上创建一列,其值是pos_度量的主键。这样一个专栏的典型名称是pos_metrics_id你能评论一下你的答案吗?答案很简单,但没有显示lol,谢谢你,Jayak;