LEFT JOIN查询返回双结果

时间:2016-11-17 22:39:40

标签: php mysql left-join

晚上好,

我正在使用LEFT JOIN来查询 atable btable ,但是当我运行查询时,我会将每个结果返回两次。 (只有当我有重复时)

我的查询如下:

$sql="
SELECT *
FROM atable A
LEFT JOIN btable B ON (A.article_number = B.article_number)
WHERE A.article_number2 = B.article_number2
";

atable

Name   id  name       article_number article_number2
Row1   1    Mercedes     M1                M2

BTABLE

Name   id  name       article_number article_number2
Row1   1    Mercedes     M1                M2
Row2   2    Mercedes     M1                M2

我应该得到这样的结果:

  

梅赛德斯:1x
  梅赛德斯:1x

我明白了:

  

梅赛德斯:1x
  梅赛德斯:1x
  梅赛德斯:1x
  梅赛德斯:1x

我错过了什么吗?

任何帮助将不胜感激。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

您的SQL是最正确的,您只需要将GROUP BY添加到您的SQL查询中。

SELECT *
FROM atable as A
LEFT JOIN btable as B ON (A.article_number = B.article_number)
WHERE A.article_number2 = B.article_number2
GROUP BY A.id

此处 A.id 是表 atable 的primary_key。

希望这适合你:)