我的SQL查询有什么问题?
我试图设置一个查询,显示每个线程的第一篇文章,并按每个线程中最后一篇文章的日期排序。我用这个问题记下了第一部分:我的SQL查询有什么问题?,sql,Sql,我试图设置一个查询,显示每个线程的第一篇文章,并按每个线程中最后一篇文章的日期排序。我用这个问题记下了第一部分: SELECT * FROM ( SELECT Min( ID ) AS MinID FROM test_posts GROUP BY Thread )tmin JOIN test_posts ON test_posts.ID = tmin.MinID 现在我需要弄清楚如何将每个线程的最后一个post调用到一个表中,而不是使用该表对第一个表的结果进行排序。到目前为止,我得到了这个
SELECT *
FROM (
SELECT Min( ID ) AS MinID
FROM test_posts
GROUP BY Thread
)tmin
JOIN test_posts ON test_posts.ID = tmin.MinID
现在我需要弄清楚如何将每个线程的最后一个post调用到一个表中,而不是使用该表对第一个表的结果进行排序。到目前为止,我得到了这个,但它不工作
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
不能按子查询排序,但可以按前一个子查询中的列/表达式排序。我不确定你打算怎么分类,但你已经有了所有的表达方式
不能按子查询排序,但可以按前一个子查询中的列/表达式排序。我不确定你打算怎么分类,但你已经有了所有的表达方式 没有详细检查你的语法,但是最后的tmax.Date是什么?你也在试着按这个分组吗?如果是这样,tmax和tmax.Date之间需要有一个逗号。另外,最好告诉我们您的错误,而不是只说“它不工作”。不要详细检查语法,但最后的tmax.Date是什么?你也在试着按这个分组吗?如果是这样,tmax和tmax.Date之间需要有一个逗号。此外,最好告诉我们您的错误,而不是仅仅说“它不起作用”。
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