2016-06-01 95 views
0

我想在SQL中執行NESTED查詢/ SUBQUERY。第二個查詢(或子查詢來自不同的表)。我嘗試了下面的查詢,但是它失敗了拋出一個錯誤'關係不存在'。儘管查詢解釋了它自己,我應該如何解決這個問題?sql中的SUBQUERY(來自不同的表)

SELECT 
     key 

    FROM 
     user_details 

    WHERE 
     user_id = (SELECT * FROM company_details WHERE type ='ABC'); 
+0

怎麼辦'user_details'和'company_details 「相互關聯?請[編輯]你的問題添加表格的定義一些樣本數據和基於這些數據的預期輸出。 _Formatted text_ please,[no screenshots](http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking-a-question/285557#285557) –

回答

0

使用 '在' 而不是 '=': -

Rel_user_id是user_details之間的關係和company_details

SELECT 
     key 

    FROM 
     user_details 

    WHERE 
     user_id in (SELECT distinct Rel_user_id FROM company_details WHERE type ='ABC'); 
+0

'company_details'與'user_details'不同' – Betafish

+2

真的嗎? (*)'中的user_id? – sagi

+1

子查詢中的區別是無用的 –

0
SELECT 
    key 

FROM 
    user_details ud 

WHERE 
    exists (SELECT 1 FROM company_details cd 
    WHERE cd.type ='ABC' and cd.Rel_user_id = ud.user_id) 
0
SELECT DISTINCT 
     ud.key 

    FROM 
     user_details ud 
    JOIN company_details cd ON ud.user_id = cd.Rel_user_id 

    WHERE cd.type ='ABC'