我目前正在构建一个自定义照片集,但现在我坚持使用mysql查询。 查询的想法是获取专辑列表,计算其中的图片数量,并获取每个专辑的一个缩略图。如何选择照片,计数照片,并为每张相册选择一张照片?
数据库现在包含两个表格,一个包含专辑数据,另一个包含图片(我将它们存储在数据库中)。
表:photoalbums
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()循环中的每个专辑执行额外查询以获取每个专辑的单个缩略图,或者我可以只使用一个查询来执行该操作吗?导致只有一张专辑出现在记录集中的错误是什么?
提前致谢!
谢谢你,这是解决我的问题! – carlo 2010-11-16 10:18:44