SQL:从两个表中进行子选择

时间:2018-07-19 20:37:54

标签: sql postgresql

我正在对SQL查询进行一些练习,并且被困在这里。我创建了一堆不同的表,我想要一个表来检索不同的列(听起来很多余)。这里的关键是:我想从两个不同的表中选择与输出的列相关的所有信息。查询的第二张表包含与第三张表的列相对应的不同属性。

为此,我写了这个:

select   l.output_name,   
         l.output_date,   
         (select *
            from elt.attribute_key
           where attribute = ('a', 'b', 'c')   
         )
  from   etl.output l  
 where   l.version = 'local'  
   and   l.country = 'DE'

它给了我错误,我认为是由于表之间不存在联接,但是我不知道应该在哪里添加。此外,我想知道自己处理得当。

感谢您的帮助和时间!

1 个答案:

答案 0 :(得分:1)

好像您是说 CROSS JOIN ,所以,请使用:

select  l.output_name, l.output_date, 
        a.* 
  from  etl.output l  
  cross join elt.attribute_key a
  where l.version = 'local'  
    and l.country = 'DE'
    and a.attribute in ('a', 'b', 'c');