我想从website.advert中选择所有记录,并从另一个表中加入玩家名称。该查询本身运行没有任何错误,但是存在一个问题,当播放器表中有多个记录具有相同的website.advert时,它确实会从account_id中选择重复的记录。

这是我的查询:

  SELECT `advert`.*, `p`.`name`, `p`.`level`
   FROM `website`.`advert`
   LEFT JOIN `player`.`player` `p`
   ON (`p`.`account_id` = `website`.`advert`.`author_id`)
   WHERE `advert`.`accepted` = 0

最佳答案

您需要使用DISTINCT,但我在弄清楚您的查询时遇到了麻烦。您似乎没有从website.advert中选择任何字段

抱歉,已编辑:

SELECT `advert`.*, `p`.`name`, `p`.`level`
 FROM `website`.`advert`
 LEFT JOIN `player`.`player` `p`
 ON (`p`.`account_id` = `website`.`advert`.`author_id`)
 WHERE `advert`.`accepted` = 0
 GROUP BY `advert`.`id`


我们现在仅选择id字段-试试看,看看是否能使您更接近期望的结果。

关于mysql - 查询选择重复记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9193456/

10-11 01:41