2016-12-16 56 views
0

我有一个像下面这样的查询。如图所示它有一个子查询。我想要的是使where子句的值应该基于s1.id。目前,我让静态2因为我已经试过where s2.id = s1.id,它不是工作:sql查询中Where子句的值是选择的父列

SELECT 
s1.id, 
s1.code, 
(SELECT 
     c.company_name 
    FROM 
     company c 
      INNER JOIN 
     (SELECT 
      a.company_id 
     FROM 
      agent a 
     INNER JOIN shop s2 ON a.id = s2.agent_id 
     WHERE 
      s2.id = 2) AS agent_shop ON agent_shop.company_id = c.id) AS agent_company_name 
FROM 
    shop s1 

有没有办法实现呢?

回答

0

我相信这可以做一个简单的连接,而不是:

select 
shop.id, 
shop.code, 
company.company_name as agent_company_name 
from 
shop 
left join agent on shop.agent_id=agent.id 
left join company on agent.company_id=company.id 
where 
shop.id=2;