2012-07-16 91 views
1

我有2个表:如何将一列中的值组合到一行中?

表1(让它成为'产品'):

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

表2(让它成为'标签'):

------------------------------ 
| 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

我认为你在寻找什么是 “分组依据” 和 “GROUP_CONCAT()”:

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