这一张表格有两部分拼在一起,上部分是报修单有bxrq是报修日期,tbsj是填报时间(填的时间和报修的时间可以不相同) 下部分有意见单,有jyrq是建议日期 !!问题是 order by UNIX_TIMESTAMP(case when bxrq is null then jyrq else tbsj end) desc 这是我写的的语句,需要就是按照时间戳倒序排序,当报修日期bxrq为空时按建议日期jyrq排序,否则还是按填报时间tbsj排倒序 !!但是实际预览的时候发现,如果新建一个报修单有bxrq是报修日期的时候,没有意见单建议日期jyrq为空时,应该出现的第一个是新填写的报修单 可是实际出来的是意见单的建议日期jyrq倒序排列 然后接下来才是我最新写的那条有报修日期bxrq的报修单 需要怎么修改 !!整个语句是bxr事报修人,yjjyr意见建议人,bxrq报修日期,建议日期jyrq,tbsj填报时间 select * from ( (SELECT * FROM bb_hqb_db_tb d LEFT JOIN bb_hqb_yjjyb_tb y ON d.bxr=y.yjjyr and d.bxrq = y.jyrq ) union (SELECT * FROM bb_hqb_db_tb d right JOIN bb_hqb_yjjyb_tb y ON d.bxr=y.yjjyr and d.bxrq = y.jyrq where d.bxr is null )) a order by UNIX_TIMESTAMP(case when bxrq is null then jyrq else tbsj end) desc |