Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我的SQL查询有什么问题?_Sql - Fatal编程技术网

我的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