获取子查询的结果并加入到相应的id列

时间:2014-12-08 10:40:52

标签: mysql join

如何使用外部查询加入子查询的结果?如果问题有点令人困惑,下面是例子:

Picture database
+------+---------+--------+
|  id  |  appId  |  name  |
+------+---------+--------+
|  1   |   33    |  1.jpg |
+------+---------+--------+
|  2   |   33    |  2.jpg |
+------+---------+--------+
|  3   |   33    |  3.jpg |
+------+---------+--------+
|  4   |   34    |  4.jpg |
+------+---------+--------+
|  5   |   34    |  5.jpg |
+------+---------+--------+
|  6   |   35    |  6.jpg |
+------+---------+--------+

article database
+------+--------+
|  id  |  data  |
+------+--------+
|  33  | Hello  |
+------+--------+    
|  34  | Hello  |
+------+--------+
|  35  | Hello  |
+------+--------+
|  36  | Hello  |
+------+--------+



my expected result
+------+---------+--------+------------+
|  id  |  data   |      picture        |
+------+---------+--------+------------+
|  33  |  Hello  | 1.jpg, 2.jpg, 3.jpg |
+------+---------+--------+------------+
|  34  |  Hello  | 4.jpg, 5.jpg        |
+------+---------+--------+------------+
|  35  |  Hello  | 6.jpg               |
+------+---------+--------+------------+
|  36  |  Hello  |                     |
+------+---------+--------+------------+

查询的作用是将图片和文章连接在一起,但将所有图片存储到相应的文章列中。

注意:没有必要用“,”分隔图片的名称,但可以用白色空格或其他不与图片名称冲突的符号分隔图片。

我没有任何起点所以我无法提供任何我的查询示例。但基本上我想要知道是否有可能实现它?如果是,那么任何人都可以提供查询吗?

1 个答案:

答案 0 :(得分:0)

您可以将 group_concat() 用于此

select
a.id,
a.data,
group_concat(p.name) as picture 
from article a
left join Picture p on p.appId = a.id
group by a.id