我的MULTI JOIN SQL语句有问题,我需要获取表的最后一个条目,而不是第一个条目。根据下面的语句,我尝试查询3个表:
SELECT DISTINCT i.id,i.hz,i.v,i.t,i.u,i.temp, i.c1, s.server, s.hostname, h.codes,s.cpus FROM `dc_servers` AS s INNER JOIN `dc_hardware` AS h ON s.server = h.server INNER JOIN `dc_systemusage` AS i ON s.server = i.server GROUP BY i.server
表dc_servers
和dc_hardware
在每个服务器上只有1行,而表dc_systemusage
在添加新信息时,在同一服务器上有很多行。
当我运行查询时,我从dc_systemusage
获得了第一个条目,但我需要从该表获得最新的条目,对我来说,这听起来像是我需要一个ORDER BY
,但是如果我将其添加到查询的末尾,如下所示:
SELECT DISTINCT i.id,i.hz,i.v,i.t,i.u,i.temp, i.c1, s.server, s.hostname, h.codes,s.cpus FROM `dc_servers` AS s INNER JOIN `dc_hardware` AS h ON s.server = h.server INNER JOIN `dc_systemusage` AS i ON s.server = i.server GROUP BY i.server ORDER BY i.id DESC
然后我只是在排序结果,这不是我想要的。
我希望有人能为我指引正确的方向,告诉我如何才能获得最新的行,而不是表dc_systemusage
中的第一行
我希望我已经提供了所需的信息来指导我,否则请让我知道,我会补充任何需要的。
谢谢大家。
1条答案
按热度按时间abithluo1#
您可以在子查询中找到DC_SYSTEMUSAGE的最新ID,并与WHERE一起使用...在……里面
在https://stackoverflow.com/a/3800572/7174186上查看答案