MySQL : SELECT multitable avec problème de AND
Bonjour à tous,
Je me prends la tête depuis ce matin avec cette sal#!* de requête SQL.
Alors voilà, j'ai une base MySQL qui contient 3 tables avec leurs champs :
1) formateurs :
- id
- nom
- prenom
2) matieres
- id
- intitile
3) liste_competences_formateurs
- id
- formateurs_id
- matieres_id
Un exemple de valeur que l'on trouve dans ces tables :
formateurs :
| id | nom | prenom |
-------------------------
| 1 | Toto | titi |
| 5 | Lui | Albert |
matieres :
| id | intitules |
---------------------
| 1 | Français |
| 2 | Anglais |
liste_competences_formateurs :
| id | formateurs_id | matieres_id |
----------------------------------------
| 14 | 5 | 2 |
| 19 | 5 | 1 |
| 20 | 1 | 1 |
Enfin, je cherche à obtenir l'id, le nom et le prénom des formateurs qui ont
comme compétences le Français ET l'Anglais et qui ont dans leurs noms OU prénom la lettre "A" par exemple.
J'ai bien tenté de faire quelque chose dans ce style :
SELECT DISTINCT(liste_competences_formateurs.formateurs_id), formateurs.*
FROM liste_competences_formateurs, formateurs
WHERE
(formateurs.nom LIKE '%A%' OR formateurs.prenom LIKE '%A%')
AND
(liste_competences_formateurs.matieres_id = 1
AND
liste_competences_formateurs.matieres_id = 2)
AND
liste_competences_formateurs.formateurs_id = formateurs.id
;
Mais ça marche à moitié, c'est à dire que cette requête ne fonctionne plus
s'il y a plus d'une recherche de numéro de matière. Je pense comprendre
pourquoi ça ne marche pas, le numéro de la matière ne peut être à la fois 1
et 2, mais je ne suis pas assez calé en SQL pour trouver une parade.
Auriez-vous une solution à me proposer.
Merci d'avance,
Yan