Skip to content

Instantly share code, notes, and snippets.

@RaffaeleSgarro
Created June 26, 2018 16:03
Show Gist options
  • Save RaffaeleSgarro/9c55ff23cc9f7e3b3f059b28a4a79c4b to your computer and use it in GitHub Desktop.
Save RaffaeleSgarro/9c55ff23cc9f7e3b3f059b28a4a79c4b to your computer and use it in GitHub Desktop.
create table stackoverflow_user (
user_name varchar(100) primary key
);
create table stackoverflow_language (
language_name varchar(100) primary key
);
create table stackoverflow_user_language (
user_name varchar(100) references stackoverflow_user(user_name),
language_name varchar(100) references stackoverflow_language(language_name),
primary key (user_name, language_name)
);
insert into stackoverflow_user values ('bob'), ('alice'), ('mallory'), ('robert');
insert into stackoverflow_language (language_name) values ('english'), ('spanish'), ('italian'), ('japanese');
insert into stackoverflow_user_language (user_name, language_name) values
('robert', 'spanish'), ('robert', 'italian')
, ('bob', 'spanish')
, ('mallory', 'italian')
, ('alice', 'japanese')
;
select u.user_name, count(l.language_name)
from stackoverflow_user u
join stackoverflow_user_language ul on u.user_name = ul.user_name
join stackoverflow_language l on l.language_name = ul.language_name
where l.language_name in ('spanish', 'italian')
group by u.user_name
having count(l.language_name) = 2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment