mysql: получить все строки в 1 столбце - PullRequest
1 голос
/ 28 мая 2010
  • post (id_post, title)
  • тег (id_tag, имя)
  • post_tag (id_post_tag, id_post, id_tag)

Предположим, что id_post 3 имеет 4 связанных тега 1,2,3,4 (футбол, корзина, теннис и гольф).

Есть ли способ вернуть что-то подобное в ОДНОЙ строке?

  • столбец 1 id_post = 3
  • col 2 теги = футбольная корзина, теннис, гольф, гольф

Спасибо

1 Ответ

2 голосов
/ 28 мая 2010

Использование:

  SELECT p.id_post
         GROUP_CONCAT(DISTINCT t.name SEPARATOR ' ')
    FROM POST p
    JOIN POST_TAG pt ON pt.id_post = p.id_post
    JOIN TAG t ON t.id_tag = pt.id_post_tag
GROUP BY p.id_post

Имейте в виду, что разделителем по умолчанию является запятая, поэтому вам нужно определить один пробел, если вы не хотите, чтобы между именами тегов.

Документация:

...