我目前正在構建一個自定義照片集,但現在我堅持使用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