【发布时间】:2011-12-11 06:38:14
【问题描述】:
我四处寻找这个问题的答案,但没有找到。我有一个站点,其中文章存储在文章表中,作者在用户表中。我想获取按作者最近撰写文章的时间排序的作者列表。
这给了我用户 ID:
SELECT distinct a.user_id
FROM `article` as a
ORDER BY a.id desc
问题是,一旦我尝试通过加入订单更改来引入名称,以便它是通过用户 ID 进行的。我试过这个:
SELECT distinct a.user_id, u.name
FROM `article` as a
LEFT JOIN user as u on u.id = a.user_id
ORDER BY a.id desc, u.id desc
和
SELECT distinct a.user_id, u.name
FROM `article` as a
LEFT JOIN user as u on u.id = a.user_id
ORDER BY u.id desc, a.id desc
但两者都会改变名称的顺序。我显然在做一些愚蠢的事情,但是什么?
【问题讨论】:
-
您想按他们最近撰写文章的时间排序,但正在按 ID 字段排序。为什么不是“ArticleWrittenDate”字段之类的?
-
你是对的,当然:有一个written_on datetime 字段,但发布日期和 id 字段之间从来没有太大的差异,为了简单和新,我试图减少内容无论如何,我得到的答案都可以很容易地适应。 :)
标签: mysql join sql-order-by