SQL-具有五个表的请求

SQL-具有五个表的请求,sql,mariadb,mariadb-10.4,Sql,Mariadb,Mariadb 10.4,mariadb数据库中有五个表,我想选择每个名称表的最后一个值 我执行此sql命令以获得主机、名称和严重性 我尝试了以下sql命令: select host, e.name, e.severity from hosts left join items i on (i.hostid = hosts.hostid) inner join functions f on (f.itemid = i.itemid) inner join triggers t on (t.triggerid = f.tr

mariadb数据库中有五个表,我想选择每个名称表的最后一个值

我执行此sql命令以获得主机、名称和严重性

我尝试了以下sql命令:

select host, e.name, e.severity
from hosts
left join items i on (i.hostid = hosts.hostid)
inner join functions f on (f.itemid = i.itemid)
inner join triggers t on (t.triggerid = f.triggerid)
INNER JOIN events e ON (e.objectid = t.triggerid)
group by hosts.hostid;
我想要最后一个主机、名称和严重性,我想要sql中的结果:


您可以使用
行号()窗口函数来标识所需的行,而不是分组。然后,过滤是严格向前的。例如:

select host, name, severity
from (
  select h.host, e.name, e.severity,
    row_number() over(partition by h.host order by e.clock desc) as rn
  from hosts h
  left join items i on i.hostid = h.hostid
  left join functions f on f.itemid = i.itemid
  left join triggers t on t.triggerid = f.triggerid
  left join events e on e.objectid = t.triggerid
) x
where rn = 1

顺便说一句,如果您使用了
左连接
,后续连接的表也应该使用
左连接

哪个版本的MariaDB?10.2,旧的,新的?我使用10.4.6-MARIADB使用的方法(
分析查询窗口函数
)是正确的,但预期结果不符合样本数据@sdgrhjgh是否可以请求请求?@sdgrhjgh请详细说明。你所说的请求是什么意思?