在列中显示重复项的MySQL

在列中显示重复项的MySQL,mysql,sql,Mysql,Sql,嗨,我正在尝试写一个查询,以获取有关作者、标题、类别和媒体的信息。 然而,由于项目可以在许多媒体和类别,我得到的结果显示在列重复。我怎样才能得到结果,这样我就不会把媒介看成书、书、书,把类别看成恐怖、幻想、小说。我假设我将需要某种子查询——如果需要,我将如何做 SELECT book.bookid, book.author, book.title, group_concat(category.categorydesc), group_concat(medium.mediumdesc) FROM

嗨,我正在尝试写一个查询,以获取有关作者、标题、类别和媒体的信息。 然而,由于项目可以在许多媒体和类别,我得到的结果显示在列重复。我怎样才能得到结果,这样我就不会把媒介看成书、书、书,把类别看成恐怖、幻想、小说。我假设我将需要某种子查询——如果需要,我将如何做

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
谢谢
Tom

如注释所述,解决方案是在GROUP_CONCAT()指令中添加DISTINCT关键字,如下所示:

... book.title, group_concat(DISTINCT category.categorydesc), group_concat(DISTINCT medium.mediumdesc) ...

您是否尝试在组联系人中使用不同的关键字?这仍然显示组联系人字段中的倍数:DISTINCT关键字真的在组表达式中吗?奇怪…@regilero Perfect,我只是在选择后直接“区分”,我没有意识到我可以在concat中使用它。谢谢!:)