Есть ли способ отобразить связанный запрос в виде строки? - PullRequest
0 голосов
/ 29 марта 2012

У меня есть три таблицы, например:

#Blog:
ID | Title
1    "My first blog"
2    "My second blog"

#Tags:
ID | Name
1   "Sport"
2   "Music

#tag_blog
Blog_id |   Tag_id
1           1
2           1
2           2

И я хочу отобразить их на своей веб-странице как

Blog_title  Tag_name
My first blog   Sport
My second blog  Sport, Music

в файле php, что-то вроде

if ($query->num_rows() > 0)
{
   foreach ($query->result() as $row)
   {
      echo $row->title;
      echo $row->tag;
   }
}

Но поскольку я использую объединение, оно отображает 3 строки с 1 тегом по строкам.Есть идеи, чтобы получить ожидаемые результаты?

1 Ответ

4 голосов
/ 29 марта 2012

Вы должны использовать агрегатную функцию GROUP_CONCAT -

SELECT b.Title AS Blog_title, GROUP_CONCAT(t.name) AS Tag_name FROM Blog b
  JOIN tag_blog tb
    ON tb.Blog_id = b.Blog_id
  JOIN Tags t
    ON t.Tag_id = tb.Tag_id
GROUP BY b.ID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...