通过GROUP BY,ORDER BY

问题描述

这是我的查询,它从不同的表中获取结果,我想按DESC顺序对结果进行排序,

SELECT Aset.ID,ipaddress.ip_address,inter_ip.created_at
FROM Aset 
LEFT JOIN inter_ip ON (inter_ip.set_id = Aset.ID)  
LEFT JOIN ipaddress ON(ipaddress.ID=inter_ip.ip_ID) 
GROUP BY Aset.ID  ORDER BY  Aset.created_at,inter_ip.created_at DESC

预期结果:结果应按DESC顺序排序, 查询运行时,它以升序而不是DESC顺序显示结果。

如果在“ ORDER BY”中使用(Aset.created_at),则基于Aset.ID进行排序工作和DESC结果显示,但我希望同时应用这两种排序。 按Aset.created_at,inter_ip.created_at

排序

解决方法

您的ORDER BY有两个键。 DESC修改一次仅适用于一个键,因此我认为您想要这样做:

ORDER BY Aset.created_at DESC,inter_ip.created_at DESC

接下来,您的查询格式不正确。我不认为GROUP BY是必要的。所以您可能想要:

SELECT a.ID,ip.ip_address,ii.created_at
FROM Aset LEFT JOIN
     inter_ip ii
     ON ii.set_id = a.ID LEFT JOIN  
     ipaddress ip
     ON ip.ID = ii.ip_ID 
ORDER BY a.created_at DESC,A.ID,ii.created_at DESC;

这将返回每个Aset.id的多行-但这些行在结果集中都是相邻的。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...