任何人都可以帮我查询。我想选择一些按thread_id列分组的行。我想只选择那些有最新日期的行..让我举一个例子
thread_id | message_id | msg_date
tid_1 | mid_1 | 2018-01-10
tid_1 | mid_2 | 2018-01-14
tid_1 | mid_3 | 2018-01-13
tid_2 | mid_1 | 2018-01-11
tid_2 | mid_2 | 2018-01-12
我想要一个查询,从表中选择所有记录,但是按thread_id
对它们进行分组,并选择具有最新日期的行。预期产出:
thread_id | message_id | msg_date
tid_1 | mid_2 | 2018-01-14
tid_2 | mid_2 | 2018-01-12
我的表格中还有一个msg_date_timestamp
列。如果我们在msg_date_timestamp
的基础上订购消息会更好。我到目前为止所尝试的是:
SELECT * FROM emails WHERE user_id='".$email."' AND mailbox_label='INBOX' GROUP BY thread_id ORDER BY msg_date_ts DESC
和
SELECT * FROM emails WHERE user_id='$email' AND mailbox_label='INBOX' AND msg_date_ts in (SELECT MAX(msg_date_ts) from emails GROUP BY thread_id) ORDER BY msg_date_ts DESC
没有像我预期的那样奏效。另外我想得到一个线程中的消息计数。例如,在线程tid_1中,它应该返回3
,对于tid_2,它应该返回2
。我想在相同的查询中进行线程计数..(不是单独的计数查询)
请帮我。真的被困了。
谢谢!