使用JOIN获取数据

时间:2017-08-29 04:48:14

标签: sql join

我有两张表有以下数据 -

Social_Tbl

ID  Name         Value
------------------------
1   Facebook     FB
2   Orkut        OR
3   Google       GL
4   Other        OT

和Organization_tbl

ID  Organization   Name  
-----------------------------      
1   1234           Facebook
2   1234           Google
3   146            Other
4   126            Other
5   126            Facebook
6   77             Google

此处,'名称'是外键(非ID) 我想加入这些表并获取不属于组织ID 1234的“名称”列数据。如下所示 -

Name
----
Orkut 
Other

此处,'Orkut'和'其他'不属于1234组织。

我尝试了以下查询 -

select * from Social_Tbl st
join Organization_tbl ot 
     on st.Name = ot.Name
where Organization = 1234

此查询提取与1234相关的名称,即Facebook和Google。我想要结果 Orkut和其他。如果我将Organization = 1234替换为Organization != 1234,则会返回Organization_tbl中的所有数据。

有人可以帮我解决这个问题。这应该很简单,只能找到它。

1 个答案:

答案 0 :(得分:1)

可以使用子查询完成:

select st.Name
from Social_Tbl st
where not exists (
    select *
    from Organization_tbl ot
    where st.Name = ot.Name
      and ot.Organization = 1234
)

(这也会返回Organization_tbl中没有条目的名称。)