1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| create table RELATION1
( code varchar(8)
, competence varchar(20)
, constraint pk_relation1
primary key (code, competence)
);
create table RELATION2
( socle varchar(8)
, competence varchar(20)
, constraint pk_relation2
primary key (socle, competence)
);
insert into RELATION1 values
('code1', 'competence1'),
('code1', 'competence2'),
('code1', 'competence3'),
('code1', 'competence4'),
('code2', 'competence1'),
('code2', 'competence3'),
('code2', 'competence4');
insert into RELATION2 values
('socle1', 'competence1'),
('socle1', 'competence2'),
('socle1', 'competence3'),
('socle1', 'competence4'),
('socle2', 'competence1'),
('socle2', 'competence2'),
('socle2', 'competence5');
select code
from RELATION1
where competence in (select competence from RELATION2 where socle = 'socle1')
group by code
having count(*) = (select count(*) from RELATION2 where socle = 'socle1');
CODE
-----
code1 |
Partager