【发布时间】:2014-04-07 07:33:11
【问题描述】:
我有 2 张桌子。一个是产品列表,第二个是连接到每个产品的图像列表。
产品为 P
ID | NAME
1 | apple
2 | plum
3 | carrot
4 | strawberry
5 | pie
IM 图像
PRODUCT_ID | IMAGE | I_NAME
1 | 1 | app_abc.jpg
1 | 2 | apple.jpg
1 | 3 | appleonemoretime.jpg
2 | 1 | plum.jpg
2 | 2 | plum2.jpg
2 | 3 | plum3.jpg
2 | 4 | plum4.jpg
3 | 1 | somecarrot.jpg
4 | 1 | s1.jpg
等等...
附加信息:
- 每个产品至少有 1 张图片。
- 与一个产品关联的最大图片数量为 60。我想获得:图片名称的产品列表(一行 = 一个产品)。
- 我将按 product.id 搜索产品 - 我想在一列中获取图像,用逗号分隔,我不想获得 60 个“空”列。
例如:如果我搜索 p.id (1, 3) 我想得到类似的东西:
P.ID | IM1.I_NAME
1 | app_abc.jpg, apple.jpg, appleonemoretime.jpg
3 | somecarrot.jpg
有办法吗? 'COALESCE' 对这个有好处吗?
我现在拥有的是:
select p.id
from products p
join images im on im.product_id = p.id
where p.id in (1, 3)
【问题讨论】: