[MySQL] Requête imbriquée
3 messages
• Page 1 sur 1
- CrazyCow007
- WRInaute discret

- Messages: 182
- Inscription: 28 Déc 2003
[MySQL] Requête imbriquée
Bonjour à tous !
Je vous présente (un extrait) de la structure de ma base de données qui me permet de gérer les informations d'enseignants :
matiere
id_mat
libelle_mat
enseigner_matiere
id_ens
id_mat
Voilà mon problème :
J'aimerais afficher la liste des matières non enseignées par un enseignant en particulier.
Je me suis donc dis que la solution serait de sélectionner toutes les matières et de retirer celles qui sont déjà présentes dans enseigner_matiere pour un id_ens donné.
Voilà ma requête actuelle (pour id_ens = 3) :
N.B. : Pour simplifier j'ai enlevé la jointure qui me permet également de récupérer le libellé de la matière dans la table matiere.
Erreur retournée :
J'ai lu que les requêtes imbriquées n'étaient pas prises en compte dans des versions antérieures à la 4.1 de MySQL. J'utilise actuellement la version 5.0.22.
N'hésitez pas à me demander si vous avez besoin de plus d'informations
Merci beaucoup !
Je vous présente (un extrait) de la structure de ma base de données qui me permet de gérer les informations d'enseignants :
matiere
id_mat
libelle_mat
enseigner_matiere
id_ens
id_mat
Voilà mon problème :
J'aimerais afficher la liste des matières non enseignées par un enseignant en particulier.
Je me suis donc dis que la solution serait de sélectionner toutes les matières et de retirer celles qui sont déjà présentes dans enseigner_matiere pour un id_ens donné.
Voilà ma requête actuelle (pour id_ens = 3) :
- Code: Tout sélectionner
SELECT id_mat
FROM enseigner_matiere
WHERE id_mat NOT IN(
SELECT id_mat
FROM enseigner_matiere
WHERE id_ens = '3')
N.B. : Pour simplifier j'ai enlevé la jointure qui me permet également de récupérer le libellé de la matière dans la table matiere.
Erreur retournée :
#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT id_mat FROM enseigner_matiere WHERE id_ens = '3' )
L
J'ai lu que les requêtes imbriquées n'étaient pas prises en compte dans des versions antérieures à la 4.1 de MySQL. J'utilise actuellement la version 5.0.22.
N'hésitez pas à me demander si vous avez besoin de plus d'informations
Merci beaucoup !
-

Joe Le Mort - WRInaute occasionnel

- Messages: 260
- Inscription: 8 Aoû 2006
euh un peu brouillon ca !
tu as pas fait une erreur dans cette req :
y'a 2 fois enseigner_matiere !
Sinon essaye la clause HAVING.
tu as pas fait une erreur dans cette req :
- Code: Tout sélectionner
SELECT id_mat
FROM enseigner_matiere
WHERE id_mat NOT IN(
SELECT id_mat
FROM enseigner_matiere
WHERE id_ens = '3')
y'a 2 fois enseigner_matiere !
Sinon essaye la clause HAVING.
- CrazyCow007
- WRInaute discret

- Messages: 182
- Inscription: 28 Déc 2003
- Code: Tout sélectionner
SELECT id_mat
FROM enseigner_matiere
WHERE id_mat NOT IN(
SELECT id_mat
WHERE id_ens = '3')
Est-ce que c'est ok ?
Sinon j'ai du mal à voir comment tu veux utiliser une clause HAVING. Je n'utilise pas de fonction d'agrégat et je vois mal comment en utiliser une
3 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Google API : guide de développement de l'API Google - 20-09-2002
- Gestion des langues et des sessions en PHP / MySQL - 02-05-2004
- Passage à l'heure d'été/hiver sur un forum phpBB - 31-10-2010
- Les différents systèmes de mise en cache des données - 16-08-2010
- Nombre moyen de mots par requête : statistiques AOL Août 2006 - 10-08-2006
- Nombre de clics dans les pages de résultats : statistiques AOL Août 2006 - 11-08-2006
- Script de mise en cache des pages (PHP MySQL) - 09-08-2010
- GoogleStats : analyse temps réel des visites de Google sur votre site - 02-10-2002
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
