我正在寻找有关如何根据单独的行对SQL查询进行排序的帮助。第 3 列是此处的日期和时间。
Table:
col1 col2 col3 col4
X1 Y1 Z1 X1
X2 Y1 Z1 X2
X3 Y2 Z1 X1
X4 Y2 Z2 X2
X4 Y1 Z4 X4
我现在拥有的显然不起作用的是:
SELECT col1 FROM Table WHERE col2 = Y1 ORDER BY (Select col3 FROM table WHERE col4=col1 && col2 = Y2)
所以对我来说,我想在论坛中抓取所有新帖子,并按线程中最后一个帖子发生的时间(日期/时间)对它们进行排序,然后将它们与对最旧回复的最新回复一起显示。
以下是包含预期成果的实际表格。
post_id post_type post_time thread_id
1 o 4/29/2013 15:04 1
4 r 4/29/2013 15:05 1
16 o 7/7/2013 20:29 16
17 o 7/7/2013 20:29 17
25 r 9/7/2013 0:10 1
33 r 9/7/2013 12:52 17
34 r 9/7/2013 12:52 1
35 o 9/7/2013 13:12 35
所以这里的 o/r 表示它是新帖子 (o) 还是对线程 (r) 的回复,如果是回复,thread_id会将回复与原始帖子的post_id相关联。我需要做的是按上次发布时间(从最近到最新)对线程进行排序。所以预期的结果将是...
35
1
16
17
去掉 ORDER BY 子句中的子查询,它应该可以工作
SELECT col1
FROM Table
WHERE col2 = Y1
ORDER BY col3