选择相关的元素属性作为字符串

时间:2011-07-21 11:57:14

标签: mysql tags sql

我有一个项目表和一个标签表。现在我想要的是让一个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 个答案:

答案 0 :(得分:2)

在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