I have three tables and I want to merge book ids that have readers and versions into one rows. Readers and Version should be concatenated with ','.
Book
Id name description
----------------------
1 Book1 Book 1 Title
2 Book2 Book 2 Title
3 Book3 Book 3 Title
4 Book5 Book 5 Title
BookReader
BookId Name
----------------------
1 James
2 Stephane
2 Michael
BookVersion
BookId version
----------------------------------
1 v1
1 v2
2 v1
2 v2
2 v3
For now i use this query
select
b.id as BookId, r.name as Reader, v.version as Version
from
Book as b
left outer join
BookReader as r on r.bookId = b.id
left outer join
BookVersion as v on v.bookId = b.id
And I get this result :
BookId Reader Version
----------------------
1 James v1
1 James v2
2 Stephane v1
2 Stephane v2
2 Stephane V3
2 Michael v1
2 Michael v2
2 Michael V3
3 NULL NULL
4 NULL NULL
But I want a result like this:
BookId Reader Version
--------------------------------------------
1 James v1, v2
2 Stephane, Michael v1, v2, v3
3 NULL NULL
4 NULL NULL
What's the best way to do it ? With CTE ? or there's a another approach? Thanks