[英]Query selects duplicated records
I want to select all records from website.advert
and join player name from different table also. 我想从website.advert
选择所有记录,并从另一个表中加入玩家名称。 The query runs itself without any errors, but there is a problem that it does select duplicated records from website.advert
when there is more than one record with the same account_id
in the player table. 该查询本身运行没有任何错误,但是存在一个问题, 当播放器表中有多个具有相同account_id
记录时 ,它确实会从website.advert
选择重复的记录。
Here is my query: 这是我的查询:
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
You need to use DISTINCT
but I am having trouble figuring out your query. 您需要使用DISTINCT
但是我在弄清楚您的查询时遇到了麻烦。 You don't seem to be selecting any fields from website.advert
您似乎没有从website.advert
选择任何字段
Sorry, edited: 抱歉,已编辑:
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`
We are JUST selecting the id
field for now - try that and see if it gives you closer to the results you are expecting. 我们现在仅选择id
字段-尝试一下,看看它是否使您更接近期望的结果。
Try this query: 试试这个查询:
SELECT a.*, p.name, p.level
FROM advert a LEFT JOIN player p
ON (p.account_id = a.author_id)
WHERE a.accepted = 0
group by p.account_id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.