将行与连接表合并的SQL查询
我有以下数据库结构 1名为Books BookId、Title的表 1个名为Authors authord、AuthorName的表 1个名为BooksAuthors BookID的连接表,authord与其他2个表有关系 我正在使用此查询:将行与连接表合并的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
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中