从2个带有子查询的表中选择列,两个表中都存在记录

时间:2018-11-26 02:25:19

标签: sql-server tsql

我有一个收集表。有点像母表(我们称它为R,它映射到其他3个表。我对这3个表中的一个感兴趣(我们称它为C)

不幸的是,我不知道这些表的插入逻辑,但是我想从R和C中选择R.Hash中存在C.Hash的列

到目前为止,我在:

select 
    r.column1, r.column2, c.column3, c.column4 
from 
    r 
where 
    exists (select 1 from c
            where c.hash = r.hash)

如何绑定c列?还是完全不使用这种语法?

如果有人可以完成很棒的查询,或者至少让我知道我做错了。

谢谢!

1 个答案:

答案 0 :(得分:0)

如何加入联接:

SELECT r.column1, r.column2, c.column3, c.column4 
FROM r
INNER JOIN c
    ON c.hash = r.hash;

您的EXISTS逻辑是正确的,但是您编写查询的方式仅允许您从r表中进行选择。联接公开了两个表的列。