将行与连接表合并的SQL查询

将行与连接表合并的SQL查询,sql,vb.net,ms-access-2007,Sql,Vb.net,Ms Access 2007,我有以下数据库结构 1名为Books BookId、Title的表 1个名为Authors authord、AuthorName的表 1个名为BooksAuthors BookID的连接表,authord与其他2个表有关系 我正在使用此查询: Select Books.BookId, Books.Title, Authors.AuthorName From (Books Inner Join BooksAuthors On BooksAuthors.BookId = B

我有以下数据库结构

1名为Books BookId、Title的表 1个名为Authors authord、AuthorName的表 1个名为BooksAuthors BookID的连接表,authord与其他2个表有关系

我正在使用此查询:

   Select
  Books.BookId,
  Books.Title,
  Authors.AuthorName
From
  (Books Inner Join
  BooksAuthors On BooksAuthors.BookId = Books.BooksId) Inner Join
  Authors On BooksAuthors.AuthorId = Authors.AuthorId
我得到这样的东西:

BookId         Title            AuthorName
001           Title1            Name1
001           Title1            Name2
001           Title1            Name3
002           Title2            Name5
002           Title2            Name6
BookId         Title            AuthorName
001           Title1            Name1;Name2;Name3
002           Title2            Name5;Name6
我想知道是否可以执行一个返回如下内容的查询:

BookId         Title            AuthorName
001           Title1            Name1
001           Title1            Name2
001           Title1            Name3
002           Title2            Name5
002           Title2            Name6
BookId         Title            AuthorName
001           Title1            Name1;Name2;Name3
002           Title2            Name5;Name6
您可以使用GROUP_CONCAT进行此操作

这包括GROUP_CONCAT的GROUP BY:


编辑:在组_CONCAT中固定分隔符。另外,这个答案假设是MySQL。

我认为您缺少了一个group By。另外,您缺少group_concat.thx中的分隔符作为回复,但我忘了说我在vb.net项目中使用了查询,并且group_concat似乎不受任何支持。您使用的是什么数据库?数据库在ms access中