我有一个用户和城市的表格,需要为一个城市或另一个城市的用户检索行,但不能同时检索两者。
用户城市
----- -----
Bob Chicago
鲍勃洛杉矶查理芝加哥
道格洛杉矶Ernie Low Angeles
Frank Chicago
Frank Los Angeles
由于鲍勃和弗兰克都在这两个城市,我希望我的结果集是:
Charlie Chicago
Doug Los Angeles
Ernie Los Angeles
它就像一个“不存在”INNER JOIN但我无法掌握SQL语法(Oracle SQL)。救命啊!
答案 0 :(得分:0)
试试这个:
select * from tbl
where "user" in
(select "user" from tbl
group by "user"
having count(city) = 1);
我们只使用子查询按用户名对数据进行分组,并仅过滤出现一次的用户名。请注意,user
是一个保留字,因此您最好将列名更改为username
。