SQL需要从表中检索行"要么不是两者都要检索行#34;

时间:2015-01-07 02:09:39

标签: sql oracle inner-join

我有一个用户和城市的表格,需要为一个城市或另一个城市的用户检索行,但不能同时检索两者。

  

用户城市

     

----- -----

     

Bob Chicago

     鲍勃洛杉矶

     

查理芝加哥

     道格洛杉矶

     

Ernie Low Angeles

     

Frank Chicago

     

Frank Los Angeles

由于鲍勃和弗兰克都在这两个城市,我希望我的结果集是:

Charlie  Chicago  
Doug     Los Angeles  
Ernie    Los Angeles  

它就像一个“不存在”INNER JOIN但我无法掌握SQL语法(Oracle SQL)。救命啊!

1 个答案:

答案 0 :(得分:0)

试试这个:

select * from tbl
where "user" in
(select "user" from tbl
 group by "user"
 having count(city) = 1);

我们只使用子查询按用户名对数据进行分组,并仅过滤出现一次的用户名。请注意,user是一个保留字,因此您最好将列名更改为username