select c.cabName,r.motorName ,
(
select 
p.poolName 
from 
NodeInfo n,PoolInfo p,Pool_node pn 
where 
n.nodeID = ? 
and
p.poolID=pn.poolID 
and
pn.nodeID =n.nodeID
)
 as 
poolName, n.* from NodeInfo n,CabinetInfo c, MotorRoomInfo r 
 where
 n.nodeID = 6 and n.cabinetID =c.cabinetID and c.roomID = r.roomID;

解决方案 »

  1.   

    select c.cabName,r.motorName ,t.poolName, n.* 
    from NodeInfo n,CabinetInfo c, MotorRoomInfo r  ,
    (
    select  
    p.poolName  ,n.nodeID
    from  
    NodeInfo n,PoolInfo p,Pool_node pn  
    where  
         
    and
    p.poolID=pn.poolID  
    and
    pn.nodeID =n.nodeID
    ) t 
     where
    n.nodeID = 6 and n.cabinetID =c.cabinetID and c.roomID = r.roomID
    and t.nodeID=n.nodeID;
      

  2.   


    (
    select  
    p.poolName  
    from  
    NodeInfo n,PoolInfo p,Pool_node pn  
    where  
    n.nodeID = ?  
    and
    p.poolID=pn.poolID  
    and
    pn.nodeID =n.nodeID
    )把这段放到外面来,这样每查询一条数据就执行一次,肯定会很慢