MySQL показывает дубликаты в столбце

Привет, я пытаюсь написать запрос, чтобы получить информацию об авторе, названии, категории и носителе. Однако, поскольку элементы могут быть во многих средах и категориях, я получаю дубликаты результатов в столбцах. Как я могу получить результаты, чтобы я не видел среду как книгу, книгу, книгу и категорию как Ужасы, Фэнтези, Художественная литература. Я предполагаю, что мне понадобится какой-то подзапрос - если да, то как бы я это сделал?

SELECT book.bookid, book.author, book.title, group_concat(category.categorydesc), group_concat(medium.mediumdesc)
FROM book
Inner JOIN bookscategories ON book.bookid = bookscategories.bookid
Inner JOIN category ON bookscategories.categoryid = category.categoryid
Inner JOIN booksmediums ON book.bookid = booksmediums.bookid
Inner JOIN medium ON booksmediums.mediumid = medium.mediumid
GROUP BY book.bookid

Спасибо, Том.


person Tom    schedule 12.06.2011    source источник
comment
Вы пробовали использовать ключевое слово DISTINCT в групповом контакте?   -  person regilero    schedule 12.06.2011
comment
Это по-прежнему показывает кратные значения в полях group_concat. :С   -  person Tom    schedule 12.06.2011
comment
действительно ли ключевое слово DISTINCT находится внутри выражений GROUP_CONCAT? странный...   -  person regilero    schedule 12.06.2011
comment
@regilero Отлично, я «различал» только сразу после выбора, я не осознавал, что могу использовать его в concat. Спасибо! :)   -  person Tom    schedule 12.06.2011


Ответы (1)


Итак, как указано в комментариях, решение состоит в том, чтобы добавить ключевое слово DISTINCT в инструкции GROUP_CONCAT() следующим образом:

... book.title, group_concat(DISTINCT category.categorydesc), group_concat(DISTINCT medium.mediumdesc) ...
person regilero    schedule 12.06.2011