如何将一列中的值组合成一行?

时间:2012-07-16 13:46:04

标签: sqlite

我有两张桌子:

表1(让它为'products'):

----------------
| id | product |
----------------
|  1 | Apple   |
|  2 | Grape   |
|  3 | Orange  |

表2(让它为'tags'):

------------------------------
| id | product_id |    tag   |
------------------------------
|  1 |     1      |    tag1  |
|  2 |     1      |    tag2  |
|  3 |     2      |    tag2  |
|  4 |     2      |    tag3  |
|  5 |     3      |    tag4  |

我想向 SQLite 数据库发出请求,该数据库会生成如下结果:

---------------------------
|   product  |    tags    |
---------------------------
|    Apple   | tag1, tag2 |
|    Grape   | tag2, tag3 |
|    Orange  |    tag4    |

我怎样才能做到这一点?如何仅使用SQLite查询语言将标记组合到一列中?

1 个答案:

答案 0 :(得分:1)

我认为你要找的是“group by”和“group_concat()”:

select products.product,group_concat(tags.tag) from products join tags on tags.product_id = products.rowid group by tags.product_id;