2016-12-16 55 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;