【发布时间】:2020-04-08 16:15:29
【问题描述】:
我写了以下MySQL Json Array 查询。 Mysql版本为8.0.18-commercial
select r.network, s.server
from table1 e
inner join table2 s
on e.objectId = s.envId
inner join resources r
on e.objectId = r.envId
inner join tpgs g
on e.accountId = g.objectId
inner join msgTable a
on a.id = (select max(a.id) from msgTable a where a.logId = s.AuditId)
ORDER BY dateSubmitted DESC ;
输出有 2 列 network 和 server
network server
--- ---
[ "Linux123"
{
"key" : "Key123",
"name" : "RedHat 7"
}
]
[ "Linux234"
{
"key" : "Key234",
"name" : "RedHat 8"
}
]
我想修改JOIN 查询,只从表中获取network.name:
networkName server
--- ---
RedHat 7 "Linux123"
RedHat 8 "Linux234"
我已经写了下面的 JOIN 但它给了null networkName
select r.network->>"$.name" as networkName, s.server
from table1 e
inner join table2 s
on e.objectId = s.envId
inner join resources r
on e.objectId = r.envId
inner join tpgs g
on e.accountId = g.objectId
inner join msgTable a
on a.id = (select max(a.id) from msgTable a where a.logId = s.AuditId)
ORDER BY dateSubmitted DESC ;
【问题讨论】:
标签: mysql sql arrays json join