MySQL()未按ORDER BY子句工作

MySQL()未按ORDER BY子句工作,mysql,sql,pdo,Mysql,Sql,Pdo,在下面的查询中,我遇到了一个问题。GREATEST()函数在这里的orderby子句中不起作用。我想根据grest()函数中两个不同表中的两个时间戳对结果进行排序。它没有给出最新数据的相对结果。这里怎么了?我错过什么了吗 SELECT R1.swp_to, R1.swp_type, R1.swp_date, M.mem_fname, M.mem_lname, M.mem_last_activity, DP.dp_photo, GREATEST(R1.swp_date, R2.swp_date)

在下面的查询中,我遇到了一个问题。
GREATEST()
函数在这里的
orderby
子句中不起作用。我想根据
grest()
函数中两个不同表中的两个时间戳对结果进行排序。它没有给出最新数据的相对结果。这里怎么了?我错过什么了吗

SELECT R1.swp_to, R1.swp_type, R1.swp_date, M.mem_fname, M.mem_lname, M.mem_last_activity, DP.dp_photo, GREATEST(R1.swp_date, R2.swp_date) FROM swipes AS R1
INNER JOIN swipes AS R2 ON(R1.swp_to = R2.swp_by AND R2.swp_to = R1.swp_by AND R2.swp_type <> 'left')
LEFT JOIN members AS M ON(R1.swp_to = M.mem_id)
LEFT JOIN display_photos AS DP ON(R1.swp_to = DP.dp_mem AND DP.dp_index = 1)
LEFT JOIN messages AS MSG ON((R1.swp_to = MSG.msg_from AND R1.swp_to = MSG.msg_to) OR (R1.swp_by = MSG.msg_from AND R1.swp_by = MSG.msg_to))
WHERE R1.swp_by = :mem AND R2.swp_by IS NOT NULL AND R1.swp_type <> 'left'
ORDER BY GREATEST(MSG.msg_time, R1.swp_date) DESC
选择R1.swp_to、R1.swp_type、R1.swp_date、M.mem_fname、M.mem_lname、M.mem_last_activity、DP.DP_photo、最大值(R1.swp_date、R2.swp_date)作为R1从刷卡
内部连接滑动为R2打开(R1.swp_to=R2.swp_by和R2.swp_to=R1.swp_by和R2.swp_类型“左”)
作为M ON(R1.swp_to=M.mem_id)左加入成员
DP打开时显示左连接照片(R1.swp\U to=DP.DP\U mem和DP.DP\U索引=1)
将消息作为MSG ON(R1.swp_to=MSG.MSG_from和R1.swp_to=MSG.MSG_to)或(R1.swp_by=MSG.MSG_from和R1.swp_by=MSG.MSG_to))
其中R1.swp_by=:mem和R2.swp_by不为NULL,且R1.swp_类型为“left”
按最大订单(MSG.MSG\u时间,R1.swp\u日期)说明
我在下面附上了我在上面查询中的所有表格和数据


在这里摆弄:

exmaple中可用的数据不响应messages表的左连接,确切地说是
R1.swp\u to=MSG.MSG\u t
R1.swp\u to=MSG.MSG\u from

LEFT JOIN messages AS MSG ON
((R1.swp_to = MSG.msg_from AND R1.swp_to = MSG.msg_to) 
OR (R1.swp_by = MSG.msg_from AND R1.swp_by = MSG.msg_to))

您可以为您的数据找到一个修改后的示例,exmaple中的可用数据不响应messages表的左连接,确切地说是
R1.swp_to=MSG.MSG_t
R1.swp_to=MSG.MSG_from

LEFT JOIN messages AS MSG ON
((R1.swp_to = MSG.msg_from AND R1.swp_to = MSG.msg_to) 
OR (R1.swp_by = MSG.msg_from AND R1.swp_by = MSG.msg_to))

您可以找到数据的修改示例

@forpas请再次检查。我已经更新了数据,但仍然没有用。id为11的记录应位于顶部,作为当前最新日期的
MSG.MSG_time
grest()
如果其中一个参数为NULL,则返回NULL。MSG.MSG_时间为空why@CodeWithDesireMSG.MSG\u time与您的新数据仍然为null:代码中的左连接似乎与表MSG不匹配,因此列MSG\u time为null。@forpas但是,当数据存在于表中时,为什么它显示为null?你能帮我更正一下我的问题吗???@forpas请再查一遍。我已经更新了数据,但仍然没有用。id为11的记录应位于顶部,作为当前最新日期的
MSG.MSG_time
grest()
如果其中一个参数为NULL,则返回NULL。MSG.MSG_时间为空why@CodeWithDesireMSG.MSG\u time与您的新数据仍然为null:代码中的左连接似乎与表MSG不匹配,因此列MSG\u time为null。@forpas但是,当数据存在于表中时,为什么它显示为null?你能帮我纠正我的疑问吗?你给出的例子没有任何修改。。这和我的问题是一样的。。请检查。相同的查询但不相同的数据!问题在于你的数据!请查看我在上面对@forpas的最新评论,并查看您是否能提供帮助。我已经解释了我真正想做的事情。你给出的例子没有任何修改。。这和我的问题是一样的。。请检查。相同的查询但不相同的数据!问题在于你的数据!请查看我在上面对@forpas的最新评论,并查看您是否能提供帮助。我已经解释了我真正想做的事情。