我的应用中存在正确的数据库查询处理问题,说实话,我不知道应该做些什么来使其工作。
我的数据库看起来像这样
BooksTable
-_id
-title
-author
RentsBookTable
-_id
-userId
-bookId
-date
UsersTable
-_id
-name
GenresTable
-_id
-name
BooksGenresTable
-bookId
-genreId
我的数据库中的所有内容我想在ListView
内显示。
我正在接受这个条款:
BooksTable
LEFT OUTER JOIN RentsBookTable ON(RentsBookTable.bookId=BooksTable._id)
LEFT OUTER JOIN UsersTable ON(RentsBookTable._id=UsersTable._id)
LEFT OUTER JOIN BooksGenresTable ON(BooksGenreTable.bookId=BooksTable._id)
LEFT OUTER JOIN GenresTable ON(GenresTable._id=BooksGenresTable.genreId)
我希望每一行都显示图书的标题,租用它的用户名以及用逗号分隔的类型。
除了最后一部分之外的所有内容 - 使用显示的子句正确地使用类型的逗号连接和分隔。现在有更多类型的书籍是重复的。我一直在尝试
"GROUP_CONCAT(" + GebresTable.name + ",', ') AS " + "genresConcat"
不幸的是我无法实现目标。通过这个concat,我总是只获得一个连接和显示所有类型的记录。
有人可以告诉我如何实现目标。
答案 0 :(得分:1)
尝试使用此功能,仅显示不同的类型:
GROUP_CONCAT(DISTINCT genre) AS genre
您还需要在where子句后面用GROUP BY
对类型进行分组,以显示所有匹配的记录。