我有一个表,其中包含所有可下载项目的记录,另一个表包含每个下载的记录,其中包括下载日期和项目的 id 以及下载它的用户。
当我从数据库中获取项目列表时,我希望查询查找项目已下载多少次并将其与其他项目数据一起包含。
这是我的 SQL:
SELECT t1.*,
(SELECT COUNT(*)
FROM tl_downloads
WHERE item_id = t1.id
AND download_date > ?)
AS downloads_count
FROM tl_items AS t1
ORDER BY downloads_count DESC
上面的查询工作正常,因为我在结果中得到一个名为“downloads_count”的额外列,其中包含正确的计数,但它不会让我按这个值排序。
我需要做什么才能按子查询中返回的值对我的结果进行排序?
如果您需要更多信息,请告诉我!
编辑 - 示例数据
tl_items tl_downloads
id name id item_id download_date
1 Item 1 1 1 1385964000
2 Item 2 2 1 1385964000
3 Item 3 3 3 1385964000
我期望的结果是:
Item 1 - Downloads 2
Item 3 - Downloads 1
Item 2 - Downloads 0
谢谢