问题描述
这是我的查询,它从不同的表中获取结果,我想按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
的多行-但这些行在结果集中都是相邻的。