Mysql使用一个查询从数据库中获取多个集合及其最新图像

时间:2012-03-18 12:35:56

标签: mysql

任何善良的灵魂都可以帮助我在一个桶(集合)中检索最新发布的图像而不是第一个发布的?下面的代码有效,它会喜欢这个节目最新添加的图像而不是数据库中添加的第一个图像。

这是我正在使用的MySQL查询:

        SELECT t.*, bt.*, d.* 
        FROM collection_images bt, collections t, images d 
        WHERE bt.collection_id = t.unique_id 
        AND (t.creator IN ($dropper_id))
        AND d.unique_id = bt.image_id 
        GROUP BY bt.collection_id

以下是表格:

集合

id
name
unique_id
creator

* collection_images *

id
collection_id
unique_id
image_id

图像

id
image_url
unique_id
title
date

谢谢!

2 个答案:

答案 0 :(得分:0)

你可以尝试订购images.id desc我也不确定你的日期字段存储的是什么? 如果是时间戳则可以使用它。

答案 1 :(得分:0)

我已经重写了查询 -

SELECT c.*, images.*
FROM collections c
INNER JOIN (
    SELECT collection_id, MAX(images.id) AS max_id
    FROM collection_images
    INNER JOIN images
        ON collection_images.image_id = images.unique_id
    GROUP BY collection_id
) AS latest
    ON c.unique_id = latest.collection_id
INNER JOIN images
    ON latest.max_id = images.id
WHERE (c.creator IN ($dropper_id))

UPDATE 现在使用images.id而不是images.date,因为不需要第二次加入collection_images。