【发布时间】:2011-05-10 12:13:33
【问题描述】:
我目前正在构建一个自定义相册,但现在我遇到了一个 mysql 查询。 查询的想法是获取相册列表,计算其中的图片数量,然后为每个相册获取一个缩略图。
数据库现在由两张表组成,一张包含专辑数据,一张包含图片(我将它们存储在数据库中)。
表格:相册
id | album_name | album_created
-------------------------------------
1 | testalbum | 2010-11-07 19:33:20
2 | some more | 2010-11-15 18:48:29
表格:图片
id | file | thumbnail | name | album_id
------------------------------------------
1 | binary | binary | test1 | 1
2 | binary | binary | test2 | 1
3 | binary | binary | test3 | 2
4 | binary | binary | test4 | 2
5 | binary | binary | test5 | 1
我当前的查询看起来像这样,但显然不起作用。
SELECT alb.id album_id, alb.album_name, alb.album_created, COUNT(p.id) pcount FROM photoalbums alb LEFT JOIN pictures p ON p.album_id=alb.id GROUP BY p.album_id ORDER BY alb.album_name ASC
首先,此查询将获取相册中的所有缩略图,而我只想要一个(作为预览)。接下来,它似乎停在一张专辑上,我认为是 GROUP BY 语句造成的。
我是否需要在 while() 循环中为每个专辑执行额外的查询以获取每个专辑的单个缩略图,或者我可以只使用单个查询来完成吗?导致只有一张专辑出现在记录集中的错误是什么?
提前致谢!
【问题讨论】:
标签: mysql