使用共享子查询优化MySQL子查询
根据这些表,我编写了这个子查询,并根据需求给出了结果 需要专家指导来改进此查询,或者我们是否也可以对这些表使用join 查询:使用共享子查询优化MySQL子查询,mysql,sql,Mysql,Sql,根据这些表,我编写了这个子查询,并根据需求给出了结果 需要专家指导来改进此查询,或者我们是否也可以对这些表使用join 查询: select ps,st from pac where con in (select config from config where logi in ( select id from logicalnode where physi in (select id from ysicalnode where mas =11))); 您可以在下面尝试-使用JOIN 试
select ps,st from pac where con in (select
config from config where logi in
( select id from logicalnode where physi
in (select id from ysicalnode where mas =11)));
您可以在下面尝试-使用JOIN
试试这个
select pa,sta
from
pack p
INNER JOIN
confi c
ON
p.confi = c.idco
INNER JOIN
logice l
ON
c.logic = l.id
INNER JOIN
physiode pn
ON
l.physicalnodeid = pn.id
WHERE macaddress =123
您可以尝试使用exists:
使用左连接
请提供示例数据和所需结果。请在代码中添加一些解释。
select pa,sta
from
pack p
INNER JOIN
confi c
ON
p.confi = c.idco
INNER JOIN
logice l
ON
c.logic = l.id
INNER JOIN
physiode pn
ON
l.physicalnodeid = pn.id
WHERE macaddress =123
select payloadstr,starttime from packetdb.packet p
where exists(select 1 from packetdb.configuration c
where p.configid = id
and exists(select 1 from packetdb.logicalnode l
where c.logicalnodeid = id
and exists(select 1 from packetdb.physicalnode
where macaddress = 117769729
and l.physicalnodeid = id)
select payloadstr,starttime
from packet
left join Configuration on Configuration.IDconfig = packet.configID
left join logicalnode on logicalnode.ID = Configuration.logicalnodeid
left join physicalnode on physicalnode.ID = logicalnode.physicalnodeid
where macaddress =117769729
SELECT
payloadstr
,starttime
FROM packetdb.packet
INNER JOIN packetdb.configuration
ON packetdb.packet.configid = packetdb.configuration.idconfig
INNER JOIN packetdb.logicalnode
ON packetdb.configuration.idconfig = packetdb.logicalnode.id
INNER JOIN packetdb.physicalnode
ON packetdb.logicalnode.physicalnodeid = packetdb.physicalnode.id and packetdb.physicalnode.macaddress=117769729