mysql GROUP_CONCAT DISTINCT multiple columns

Try this:

GROUP_CONCAT(
  DISTINCT CONCAT(tags.id,',',tags.displayName) 
  ORDER BY posts.id 
  SEPARATOR ';'
)

As advised by @Willa, I add my comment as an anwser :

GROUP_CONCAT allows you to concat multiple fields :

GROUP_CONCAT(tags.id, ',', tags.displayName)

The only difference with Stephan's answer is in case your code allows the same tag to be affected several times to one post OR if you JOIN sequence leads you to multiselect the same record in the tag table. In those case, my solution will return the same tags multiple times.