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

SQL:从两个表中进行子选择,sql,postgresql,Sql,Postgresql,我正在练习SQL查询,我被困在这里了。我创建了一组不同的表,我想要一个检索不同列的表(听起来是冗余的)。这里的关键是:我想从两个不同的表中选择与outputs列相关的所有信息。查询的第二个表包含与第三个表的列相对应的不同属性 为此,我写了以下内容: select l.output_name, l.output_date, (select * from elt.attribute_key where

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

为此,我写了以下内容:

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'
它给了我错误,我认为这是由于表之间不存在连接,但我不知道应该在哪里添加。此外,我想知道我正在妥善处理它

谢谢你的帮助和时间

如果您的意思是交叉连接,那么请使用:

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

通常情况下,人们会使用
JOIN
来实现此目的。请给出一些示例数据和您期望的输出。在这个阶段,你的问题还不清楚。在代码中还有一个字段列表(选择…)。如果有,必须确保它返回一个标量值,而不是一组行,并且不能像那样返回多个列。不管怎么说,你现在还不清楚是否打算对此发表更多评论。