Запрос выбирает дублированные записи - PullRequest
0 голосов
/ 08 февраля 2012

Я хочу выбрать все записи из 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

Ответы [ 2 ]

2 голосов
/ 08 февраля 2012

Вам нужно использовать 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 - попробуйте это и посмотрите, приближает ли оно вас к ожидаемым результатам.

1 голос
/ 08 февраля 2012

Попробуйте этот запрос:

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
...