使用一个表来订购另一个

时间:2014-09-09 09:04:00

标签: mysql

我正在尝试进行MySQL调用,我从一个表中选择一些来源,从另一个表中选择相关文章,然后按最新文章对源进行排序。 (通过订购文章找到最新文章的日期)

文章在数据库

中被称为Newsitems

我的查询目前看来是这样的

SELECT source.Name, source.Id, newsitem.UploadedAt 
FROM northern_light.source 
INNER JOIN northern_light.source_newsitem 
ON source.Id = source_newsitem.SourceId 
INNER JOIN northern_light.newsitem
ON source_newsitem.NewsItemId = newsitem.NewsItemId
WHERE source.Name LIKE '%%'
GROUP BY source.Id 
ORDER BY newsitem.UploadedAt DESC
LIMIT 0, 100;

问题在于它没有选择最新的'Newsitem'。 有没有办法在我通过newsitem.UploadedAt订购DESC时选择source.name,source.id和newsitem.uploadedAt?

提前致谢。

1 个答案:

答案 0 :(得分:1)

在ORDER BY之后执行GROUP BY,方法是使用GROUP BY包装查询:

SELECT test.* FROM (
    SELECT source.Name, source.Id, newsitem.UploadedAt 
    FROM northern_light.source 
    INNER JOIN northern_light.source_newsitem 
    ON source.Id = source_newsitem.SourceId 
    INNER JOIN northern_light.newsitem
    ON source_newsitem.NewsItemId = newsitem.NewsItemId
    WHERE source.Name LIKE '%%'
    ORDER BY newsitem.UploadedAt DESC
    LIMIT 0, 100
) AS test GROUP BY source.Id;