sql - Retrieving data from three tables using joins -


i have following tables:

post (id, title, author_id) etc tags post_tags author 

the following sql query seems first thread, along all tags.

select post. * , author.username, group_concat( distinct tag.name order tag.name desc separator ',' ) tags author, post join post_tags on post.id = post_tags.thread_id join tag on post_tags.tag_id = tag.id author.id = post.author_id 

what doing wrong here?

you use group_concat() group by clause.

without group by, means group rows 1 , show group concatenation of tags.

the first thread data see byproduct of myqsl ill-behaviour allows show fields in select not dependent on grouping fields (none in case).

try query adding group post.id @ end.

select post. *      , author.username      , group_concat( distinct tag.name order tag.name desc separator ',' )          tags  author   join post     on author.id = post.author_id   join post_tags     on post.id = post_tags.thread_id   join tag     on post_tags.tag_id = tag.id  group post.id 

Comments