Problemes doublons jointures avec WHERE
Résolu/Fermé
alexis972
Messages postés
6
Date d'inscription
mardi 4 juin 2013
Statut
Membre
Dernière intervention
11 juin 2013
-
6 juin 2013 à 16:00
alexis972 Messages postés 6 Date d'inscription mardi 4 juin 2013 Statut Membre Dernière intervention 11 juin 2013 - 11 juin 2013 à 13:18
alexis972 Messages postés 6 Date d'inscription mardi 4 juin 2013 Statut Membre Dernière intervention 11 juin 2013 - 11 juin 2013 à 13:18
A voir également:
- Problemes doublons jointures avec WHERE
- Doublons photos - Guide
- Supprimer les doublons excel - Guide
- Supprimer les doublons photos gratuit - Télécharger - Nettoyage
- Comment fusionner 2 fichiers excel et supprimer les doublons - Guide
- Logiciel gratuit pour supprimer les doublons en français - Télécharger - Nettoyage
13 réponses
alexis972
Messages postés
6
Date d'inscription
mardi 4 juin 2013
Statut
Membre
Dernière intervention
11 juin 2013
6 juin 2013 à 16:18
6 juin 2013 à 16:18
Merci de ta réponse jeremy
J'ai créé deux tables:
la table tab_asm_elv qui a pour composants:
E_MATR, E_NOM, E_PREN, E_SEXE, E_DATNAISS, E_LIEUNAIS, E_PERPREN, E_PERNOM, E_MERPREN, E_MERNOM, E_INSCRIPT
ET une table tab_scolar avec pour composants:
E_MATR, SCO_PROF, SCO_ANN
Pour exemple le programme affiche:
Aléxis
RETOUR
M
xx/xx/xxxx,
xxx
prenompere
nompere
prenommere
nommere
enseignant
J'ai créé deux tables:
la table tab_asm_elv qui a pour composants:
E_MATR, E_NOM, E_PREN, E_SEXE, E_DATNAISS, E_LIEUNAIS, E_PERPREN, E_PERNOM, E_MERPREN, E_MERNOM, E_INSCRIPT
ET une table tab_scolar avec pour composants:
E_MATR, SCO_PROF, SCO_ANN
Pour exemple le programme affiche:
Aléxis
RETOUR
M
xx/xx/xxxx,
xxx
prenompere
nompere
prenommere
nommere
enseignant
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
6 juin 2013 à 16:20
6 juin 2013 à 16:20
La table scloar représente les prof ?
alexis972
Messages postés
6
Date d'inscription
mardi 4 juin 2013
Statut
Membre
Dernière intervention
11 juin 2013
6 juin 2013 à 16:25
6 juin 2013 à 16:25
Elle représente les enseignants affiliés à un élève
Elève représenté ici par son matricule pour pouvoir faire la jointure avec la table tab_asm_elv
Et je n'ai pas créé les tables mais je l'ai est importée
Elève représenté ici par son matricule pour pouvoir faire la jointure avec la table tab_asm_elv
Et je n'ai pas créé les tables mais je l'ai est importée
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
6 juin 2013 à 16:36
6 juin 2013 à 16:36
Ok donc à priori ta requete devrait foncitonner ...
$sql = 'SELECT E.E_MATR, E.E_NOM, E.E_PREN, E.E_SEXE, E.E_DATNAISS, E.E_LIEUNAIS, E.E_PERPREN, E.E_PERNOM, E.E_MERPREN, E.E_MERNOM, S.SCO_ANN, S.SCO_PROF, E.E_INSCRIPT
FROM tab_asm_elv E, tab_scolar S
WHERE E.E_MATR=S.E_MATR
GROUP BY E.E_MATR
ORDER BY E.E_MATR ';
$sql = 'SELECT E.E_MATR, E.E_NOM, E.E_PREN, E.E_SEXE, E.E_DATNAISS, E.E_LIEUNAIS, E.E_PERPREN, E.E_PERNOM, E.E_MERPREN, E.E_MERNOM, S.SCO_ANN, S.SCO_PROF, E.E_INSCRIPT
FROM tab_asm_elv E, tab_scolar S
WHERE E.E_MATR=S.E_MATR
GROUP BY E.E_MATR
ORDER BY E.E_MATR ';
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
La requête fonctionne le probleme est qu'elle n'affiche qu'un seul prof pour chaque eleve
alors que j'aimerais que la requête m'affiche tous les profs d'un eleve
alors que j'aimerais que la requête m'affiche tous les profs d'un eleve
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
Modifié par jeremy.s le 6/06/2013 à 16:57
Modifié par jeremy.s le 6/06/2013 à 16:57
Oui mais la j'ai rajouté des E. et S. devant les champs.
Sinon essaye sans le group by
Jérémy
Sinon essaye sans le group by
Jérémy
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
6 juin 2013 à 17:08
6 juin 2013 à 17:08
Normal, mais tu n'arriveras pas faire ce que tu souhaites en une requete à mon avis ...
$sql = 'SELECT E.E_MATR, E.E_NOM, E.E_PREN, E.E_SEXE, E.E_DATNAISS, E.E_LIEUNAIS, E.E_PERPREN, E.E_PERNOM, E.E_MERPREN, E.E_MERNOM, E.E_INSCRIPT, S.SCO_ANN, S.SCO_PROF
FROM tab_asm_elv E, tab_scolar S
WHERE E.E_MATR=S.E_MATR
GROUP BY E.E_MATR, E.E_NOM, E.E_PREN, E.E_SEXE, E.E_DATNAISS, E.E_LIEUNAIS, E.E_PERPREN, E.E_PERNOM, E.E_MERPREN, E.E_MERNOM, E.E_INSCRIPT
ORDER BY E.E_MATR ';
$sql = 'SELECT E.E_MATR, E.E_NOM, E.E_PREN, E.E_SEXE, E.E_DATNAISS, E.E_LIEUNAIS, E.E_PERPREN, E.E_PERNOM, E.E_MERPREN, E.E_MERNOM, E.E_INSCRIPT, S.SCO_ANN, S.SCO_PROF
FROM tab_asm_elv E, tab_scolar S
WHERE E.E_MATR=S.E_MATR
GROUP BY E.E_MATR, E.E_NOM, E.E_PREN, E.E_SEXE, E.E_DATNAISS, E.E_LIEUNAIS, E.E_PERPREN, E.E_PERNOM, E.E_MERPREN, E.E_MERNOM, E.E_INSCRIPT
ORDER BY E.E_MATR ';
alexis972
Messages postés
6
Date d'inscription
mardi 4 juin 2013
Statut
Membre
Dernière intervention
11 juin 2013
7 juin 2013 à 08:33
7 juin 2013 à 08:33
Désolé d'avoir autant tarder à répondre.
C'est justement là le problème, je ne vois pas comment faire pour obtenir ce que je veux.
C'est justement là le problème, je ne vois pas comment faire pour obtenir ce que je veux.
dna.factory
Messages postés
25518
Date d'inscription
mercredi 18 avril 2007
Statut
Modérateur
Dernière intervention
24 janvier 2025
1 613
Modifié par dna.factory le 7/06/2013 à 09:12
Modifié par dna.factory le 7/06/2013 à 09:12
GROUP BY E_MATR
Problème: cette requête ne me permet de n'afficher que un seul enseignant par élève
en même temps, c'est le role du group by...
il ne faut pas confondre group by et ordre by
ici on veut juste faire un order by pour 'regrouper' l'affichage.
la requette est extrêmement simple:
select eleve.nom, prof.nom
from prof, eleve
where prof.id=eleve.id_prof
(pour du 1,inf.
Si jamais on veut du 0,inf (un éleve oublié qui n'a aucun prof, ou un prof faignant qui n'a aucun eleve, il faudra utiliser un outer join)
Stop failing the turing test !
Problème: cette requête ne me permet de n'afficher que un seul enseignant par élève
en même temps, c'est le role du group by...
il ne faut pas confondre group by et ordre by
ici on veut juste faire un order by pour 'regrouper' l'affichage.
la requette est extrêmement simple:
select eleve.nom, prof.nom
from prof, eleve
where prof.id=eleve.id_prof
(pour du 1,inf.
Si jamais on veut du 0,inf (un éleve oublié qui n'a aucun prof, ou un prof faignant qui n'a aucun eleve, il faudra utiliser un outer join)
Stop failing the turing test !
alexis972
Messages postés
6
Date d'inscription
mardi 4 juin 2013
Statut
Membre
Dernière intervention
11 juin 2013
7 juin 2013 à 09:34
7 juin 2013 à 09:34
Bonjour et merci de ta réponse dna.factory
Je connais la différence entre le GROUP BY et le ORDER BY
Le problème quand je fais ma requête avec le ORDER BY (et ce qui est logique)
j'obtiens ce tableau
10 Aléxis RETOUR G 1992-01-30 Le Blanc-Mesnil TRUTIE Annick
10 Aléxis RETOUR G 1992-01-30 Le Blanc-Mesnil CUZIN Mich
10 Aléxis RETOUR G 1992-01-30 Le Blanc-Mesnil TRUTIE Annick
10 Aléxis RETOUR G 1992-01-30 Le Blanc-Mesnil TRUTIE Annick
et moi je veux que sa affiche
10 Aléxis RETOUR G 1992-01-30 Le Blanc-Mesnil
et que quand je cliques sur "Aléxis"
Je voudrais que sa affiche
Aléxis
RETOUR
G
1992-01-30
Le Blanc-Mesnil
TRUTIE Annick
CUZIN Mich
TRUTIE Annick
TRUTIE Annick
Je connais la différence entre le GROUP BY et le ORDER BY
Le problème quand je fais ma requête avec le ORDER BY (et ce qui est logique)
j'obtiens ce tableau
10 Aléxis RETOUR G 1992-01-30 Le Blanc-Mesnil TRUTIE Annick
10 Aléxis RETOUR G 1992-01-30 Le Blanc-Mesnil CUZIN Mich
10 Aléxis RETOUR G 1992-01-30 Le Blanc-Mesnil TRUTIE Annick
10 Aléxis RETOUR G 1992-01-30 Le Blanc-Mesnil TRUTIE Annick
et moi je veux que sa affiche
10 Aléxis RETOUR G 1992-01-30 Le Blanc-Mesnil
et que quand je cliques sur "Aléxis"
Je voudrais que sa affiche
Aléxis
RETOUR
G
1992-01-30
Le Blanc-Mesnil
TRUTIE Annick
CUZIN Mich
TRUTIE Annick
TRUTIE Annick
dna.factory
Messages postés
25518
Date d'inscription
mercredi 18 avril 2007
Statut
Modérateur
Dernière intervention
24 janvier 2025
1 613
7 juin 2013 à 09:46
7 juin 2013 à 09:46
Ok, mais ce n'est pas à la requête de faire ça, c'est à ton programme
tu fais une première requête
select nom from eleve
pour générer ton affichage.
et quand tu cliques sur eleve, tu appelle une autre requête qui fera
select professeur.nom
from professeur, eleve
where eleve.id=prof.id_eleve (j'avais inversé dans l'autre)
and eleve.nom=$Nom_eleve
tu fais une première requête
select nom from eleve
pour générer ton affichage.
et quand tu cliques sur eleve, tu appelle une autre requête qui fera
select professeur.nom
from professeur, eleve
where eleve.id=prof.id_eleve (j'avais inversé dans l'autre)
and eleve.nom=$Nom_eleve
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
7 juin 2013 à 14:39
7 juin 2013 à 14:39
+1
alexis972
Messages postés
6
Date d'inscription
mardi 4 juin 2013
Statut
Membre
Dernière intervention
11 juin 2013
11 juin 2013 à 13:18
11 juin 2013 à 13:18
Excusez moi pour ce retard, j'ai enfin trouvé la requête a faire pour pouvoir afficher tous les professeurs d'un seul élève.
Dans un premier temps je crée cette requête:
$sql = 'SELECT E.E_MATR, E_NOM, E_PREN, E_SEXE, E_DATNAISS, E_LIEUNAIS, E_PERPREN, E_PERNOM, E_MERPREN, E_MERNOM, SCO_ANN, SCO_PROF ,E_INSCRIPT FROM tab_asm_elv E, tab_scolar S WHERE E.E_MATR=S.E_MATR GROUP BY E_MATR ORDER BY E_NOM';
Ensuite quand je clique sur le nom j'appelle cette reqûete:
$sql2 = 'SELECT S.SCO_PROF, S.SCO_ANN FROM tab_asm_elv E, tab_scolar S WHERE E.E_MATR="'.$matricule.'" AND E.E_MATR=S.E_MATR ORDER BY SCO_ANN';
Et sa fonctionne.
Merci pour votre aide
Dans un premier temps je crée cette requête:
$sql = 'SELECT E.E_MATR, E_NOM, E_PREN, E_SEXE, E_DATNAISS, E_LIEUNAIS, E_PERPREN, E_PERNOM, E_MERPREN, E_MERNOM, SCO_ANN, SCO_PROF ,E_INSCRIPT FROM tab_asm_elv E, tab_scolar S WHERE E.E_MATR=S.E_MATR GROUP BY E_MATR ORDER BY E_NOM';
Ensuite quand je clique sur le nom j'appelle cette reqûete:
$sql2 = 'SELECT S.SCO_PROF, S.SCO_ANN FROM tab_asm_elv E, tab_scolar S WHERE E.E_MATR="'.$matricule.'" AND E.E_MATR=S.E_MATR ORDER BY SCO_ANN';
Et sa fonctionne.
Merci pour votre aide
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
6 juin 2013 à 16:07
6 juin 2013 à 16:07
Salut !
Peux tu mettre la strucure de tes tables stp :)
Mais a première vue ce n'est pas posible avec tes tables actuelles.
Quand tu dis "un élève a plusieurs prof" cela se traduit par une table intermédiaire entre la table prof et la table élève.
Peux tu mettre la strucure de tes tables stp :)
Mais a première vue ce n'est pas posible avec tes tables actuelles.
Quand tu dis "un élève a plusieurs prof" cela se traduit par une table intermédiaire entre la table prof et la table élève.