Bonjour,

J'ai 3 tables qui sont candidats, professions et langues
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE TABLE candidats (
  id INT,
  nom VARCHAR(100)
);
 
CREATE TABLE professions (
  candidat_id INT,
  profession_id INT
);
 
CREATE TABLE langues (
  candidat_id INT,
  langue_id INT
);
Les valeurs:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
INSERT INTO candidats (id, nom) VALUES 
(1, "MARTIN"),
(2, "DURAND"),
(3, "DUPONT");
 
INSERT INTO professions (candidat_id, profession_id) VALUES
(1, 1),
(1, 3),
(2, 1),
(2, 2),
(3, 3),
(3, 1);
 
INSERT INTO langues (candidat_id, langue_id) VALUES
(1, 2),
(1, 4),
(2, 1),
(2, 4),
(3, 2),
(3, 3);
Maintenant les requêtes que je souhaite exécutées
1) Tous les candidats dont la profession est 1 et 3

Celle là, j'ai réussi de cette manière:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
SELECT id
FROM candidats JOIN professions ON id = candidat_id  
WHERE profession_id = 1 OR profession_id = 3 
GROUP BY id 
HAVING count(*) = 2
J'obtiens les candidats 1 et 3.

2) Maintenant la requête que je n'arrive pas à faire: Tous les candidats dont la profession est 1 et 3 et dont la langue est 2 et 4.

Ici je devrais obtenir le candidat 1. Mais je n'ai pas réussi

Si quelqu'un a une idée, je suis preneur.