Выберите связанные атрибуты элементов как строку - PullRequest
1 голос
/ 21 июля 2011

У меня есть таблица предметов и таблица тегов. Теперь я хотел бы иметь один элемент Select, который получает элементы с определенным условием и для каждого элемента выбирает связанные теги и помещает их в строку, чтобы стать отдельным полем.

Пример:

table_items:
id   | title
---------------------------
01   | peter
---------------------------
02   | john
---------------------------
03   | cindy

tags:
id   | title
---------------------------
01   | tall
---------------------------
02   | tiny
---------------------------
03   | blone
---------------------------
04   | loud
---------------------------
05   | ...

tags_to_items:
itemid | tagid
---------------------------
01     | 02
---------------------------
01     | 04
---------------------------
02     | 01
...

Я думаю, вы поняли.

Now I want a result like this:
itemid | title   | tags
---------------------------
01     | peter   | tiny, loud
---------------------------
01     | john    | tall, fast, bored

Могу ли я сделать это только с MySQL? Как?

1 Ответ

2 голосов
/ 21 июля 2011

В MySQL для этого требуется функция GROUP_CONCAT.

Что-то вроде:

select ti.id, ti.title, group_concat(t.title)
  from table_items ti
 inner join tag_to_items tti on (ti.id = tti.itemid)
 inner join tags t on (t.id = tti.tagid)
 group by ti.id, ti.title
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...