我有一张桌子,上面列出了供应牛肉或鸡肉的餐馆,这很接近:
Res Meat
res1 chicken
res1 chicken
res1 beef
res2 chicken
res2 chicken
res3 beef
Run Code Online (Sandbox Code Playgroud)
并且我正在尝试编写一个查询,该查询返回哪些餐厅仅提供鸡肉或牛肉,但不同时提供这两种,而不会从结果中消除重复。
试试这个方法:
create table tab
(
Res varchar(10),
Meat varchar(10)
)
insert into tab ( Res, Meat ) values ( 'res1', 'chicken' )
insert into tab ( Res, Meat ) values ( 'res1', 'chicken' )
insert into tab ( Res, Meat ) values ( 'res1', 'beef' )
insert into tab ( Res, Meat ) values ( 'res2', 'chicken' )
insert into tab ( Res, Meat ) values ( 'res2', 'chicken' )
insert into tab ( Res, Meat ) values ( 'res3', 'beef' )
select Res
from (
select distinct Res,Meat
from tab ) T
group by Res
having count(1) = 1
Run Code Online (Sandbox Code Playgroud)