i'm trying to select the customers who purchase only vegetables in food table.But i can't use except in query.How can i do this?
create table Order (
email varchar(30),
nOrder integer,
primary key (email, nOrder),
foreign key (email) references Client(email)
);
create table RegisterOrder (
email varchar(30),
nOrder integer,
nameA varchar(30),
primary key (email,nOrder,nameA),
foreign key (email,nOrder) references Order(email, nOrder),
foreign key (nameA) references Dishe(nameA)
);
create table Dishe(
nameA varchar(30),
primary key (nameA),
foreign key (nameA) references Food(nameA));
create table Food (
nameA varchar(30),
type varchar(30),
primary key (nameA)
);
解决方案
select ro.email
from registerorder ro
inner join food f on f.namea = ro.namea
group by ro.email
having sum(f.type <> 'vegtables') = 0