在sql中的SUBQUERY(来自不同的表)

时间:2016-06-01 06:25:55

标签: sql postgresql subquery

我正在尝试在SQL中执行NESTED查询/ SUBQUERY。第二个查询(或子查询来自不同的表)。我尝试了下面的查询,但它没有抛出错误'关系不存在'。尽管查询解释了自己,我该如何解决这个问题?

 SELECT 
      key 

    FROM 
      user_details 

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

3 个答案:

答案 0 :(得分:0)

使用'in'代替'=': -

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');

答案 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 )

答案 2 :(得分: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'