MySQL:将多个结果显示为新行?

时间:2014-06-10 11:29:36

标签: mysql

好的,我不得不承认我不是MySQL / phpMyAdmin的天才,但我总是愿意学习。 Theres目前是一个我无法解决的问题 - 花了最近几个小时与谷歌决定在这里问。这就是我所拥有的:

SELECT products.products_id AS ID, media.file AS Image 
FROM products 
LEFT JOIN media_link ON media_link.link_id = products.products_id 
JOIN media ON media.id = media_link.m_id 
ORDER BY ID;
基本上它是有效的。它看起来像这样:

ID | Image
1  | image.jpg
2  | image.jpg
2  | image2.jpg
3  | image.jpg

有没有办法像这样显示它?

ID | Image     | Image2
1  | image.jpg |
2  | image.jpg | image2.jpg
3  | image.jpg |

我真的不是专家,但它有可能吗?任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:2)

如果单个产品的图像数量不明,那将不是一个好主意。

我建议你改用GROUP_CONCAT

SELECT products.products_id AS ID, GROUP_CONCAT(media.file) AS Image 
FROM products 
LEFT JOIN media_link ON media_link.link_id = products.products_id 
JOIN media ON media.id = media_link.m_id 
GROUP BY products.product_id
ORDER BY products.product_id;

结果如下:

ID  Image     
1   image.jpg 
2   image.jpg,image2.jpg
3   image.jpg