2016-06-01 85 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'