4

我有一个按产品 ID 存储图像 URL 的表,并且正在尝试编写一个查询,将所有图像结果拉到一行上。该表看起来像:

photoFlag photoName objectID

其中 photoName 保存图像的相对路径,而 photoFlag 标识图像的类型(完整、拇指等)。我首先编写了一个快速查询来获取两个图像(具有不同的标志)来拉起。这就是我所拥有的:

select t2.pic, t4.pic, t2.id from
 (select p2.photoName as pic, p2.objectID as id from ds_photos as p2 where p2.photoFlag = 2) as t2,
 (select p4.photoName as pic, p4.objectID as id from ds_photos as p4 where p4.photoFlag = 4) as t4
where t2.id=t4.id

这似乎是一个正确的查询,但是当我通过 phpMyAdmin 执行时,它永远不会返回结果并无限期地显示(嗯,至少大约 40 分钟)在“显示过程”列表中。有什么我在这里没有看到的错误导致无限循环吗?

理想情况下,我只想抓取带有 photoFlag=2 的图片(某些产品有多个图像)并将它们放在同一行中,但我不知道从哪里开始。有什么建议么?

谢谢您的帮助。

4

1 回答 1

5

用途GROUP_CONCAT::

SELECT id, GROUP_CONCAT(photoName ) As pic 
FROM ds_photos 
WHERE (photoFlag = 2 or photoFlag = 4) and id = ?;
GROUP BY id

?用你想要的ID替换。

于 2012-08-22T23:43:46.047 回答