我正在尝试设置一个查询,显示每个线程的第一个帖子,并按每个线程中最后一个帖子的日期排序.我用这个查询得到了第一部分:
SELECT *
FROM (
SELECT Min( ID ) AS MinID
FROM test_posts
GROUP BY Thread
)tmin
JOIN test_posts ON test_posts.ID = tmin.MinID
Run Code Online (Sandbox Code Playgroud)
现在我需要弄清楚如何将每个线程的最后一个帖子调用到表中,而不是使用该表来排序第一个表的结果.到目前为止,我得到了这个,但它不起作用.
SELECT *
FROM (
SELECT Min( ID ) AS MinID
FROM test_posts
GROUP BY Thread
)tmin
JOIN test_posts ON test_posts.ID = tmin.MinID
ORDER BY (SELECT MAX( ID ) AS MaxID, Thread, MAX( Date )
FROM test_posts
GROUP BY Thread
)tmax
tmax.Date
Run Code Online (Sandbox Code Playgroud)
select minid
from (select min(id) as min_id,
max(id) as max_id,
max(date) as max_date
thread
from test_posts
group by thread ) t_min_max
inner join test_posts on test_posts.id = t_min_max.min_id
order by max_id, thread, max_date
Run Code Online (Sandbox Code Playgroud)
您不能通过子查询进行排序,但可以按前一个子查询中的列/表达式进行排序.我不确定你打算如何排序它,但你已经掌握了所有的表达方式.
| 归档时间: |
|
| 查看次数: |
114 次 |
| 最近记录: |