Проблема MySQL: объединение нескольких результатов / строк, вызванных nm

0

Я попробовал теперь почти все, что мог, чтобы решить проблему. До сих пор без успеха. Но должно быть решение, потому что я не думаю, что это слишком сложно. Я думаю, что я просто кровавый начинающий;-) Мне нужно присоединиться к объединению или любому другому;-) в MySQL решить следующую проблему...

CASE: три таблицы "сообщения", "tagmap" и "tags"

Таблица tagmap сохраняет все отношения n-m id сообщений и идентификатор тегов
Таблица тегов хранит тег tag_name с тегом

Таблица posts хранит post_title и post_id

 posts    post_id    post_title
          1          Charlie Chaplin Painting

 tagmap   id         post_id    tag_id
          100        1          12
          101        1          13
          102        1          14

 tags     tag_id     tag_name
          12         Acryl
          13         Chalk
          14         Poster

То, что я пытаюсь достичь, - это получить результат как результат, когда все связанные теги объединяются в один столбец. Либо через список или пробелы, разделенные запятыми:
post_id = > 1, post_title= > Charlie Chaplin... tag_name = > Acryl, Chalk, Poster

Но до сих пор единственное, что я мог получить, это mukltiple результаты, подобные этому:
post_id = > 1, post_title= > Charlie Chaplin... tag_name = > Acryl
post_id = > 1, post_title= > Charlie Chaplin... tag_name = > Chalk
post_id = > 1, post_title= > Charlie Chaplin... tag_name = > Poster

Кто-нибудь знает, как это может быть достигнуто... Любая помощь была бы высоко оценена и заблаговременно для всех, кто мог бы помочь мне в этом, -)

Теги:
aggregate-functions

1 ответ

2
Лучший ответ

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

  SELECT p.post_id,
         p.post_title,
         GROUP_CONCAT(t.tag_name ORDER BY t.tag_name SEPARATOR ', ')
    FROM POSTS p
    JOIN TAGMAP tm ON tm.post_id = p.post_id
    JOIN TAGS t ON t.tag_id = tm.tag_id
GROUP BY p.post_id, p.post_title

Ссылка:

  • 0
    Да, это кажется правильным, извините, я смотрел на более результат UNION X-)
  • 0
    СПАСИБО ОЧЕНЬ ОЧЕНЬ ОЧЕНЬ ... Я не могу поверить, что я не нашел этого ... Я действительно искал часы ... заканчивая рекурсивными методами или чем-то еще ... Надеюсь, это будет так просто. Просто нужно было добавить GROUP_CONCAT и за считанные секунды работать как шарм ... СПАСИБО !!!!
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню