Effectuer 2 INNER JOIN sur la même table
Fermé
pythong
Messages postés
7
Date d'inscription
vendredi 1 avril 2011
Statut
Membre
Dernière intervention
14 février 2013
-
14 févr. 2013 à 15:24
pythong Messages postés 7 Date d'inscription vendredi 1 avril 2011 Statut Membre Dernière intervention 14 février 2013 - 14 févr. 2013 à 16:40
pythong Messages postés 7 Date d'inscription vendredi 1 avril 2011 Statut Membre Dernière intervention 14 février 2013 - 14 févr. 2013 à 16:40
A voir également:
- Effectuer 2 INNER JOIN sur la même table
- 2 ecran pc - Guide
- Word numéro de page 1/2 - Guide
- 2 comptes whatsapp - Guide
- France 2 uhd - Accueil - TV & Vidéo
- Jdownloader 2 - Télécharger - Téléchargement & Transfert
3 réponses
Utilisateur anonyme
14 févr. 2013 à 15:42
14 févr. 2013 à 15:42
Bonjour
Pour que SQL s'y retrouve entre toutes les occurrences de ta table 'systeme', il faut mettre des alias différents et utiliser ces alias pour qualifier les champs.
Pour que SQL s'y retrouve entre toutes les occurrences de ta table 'systeme', il faut mettre des alias différents et utiliser ces alias pour qualifier les champs.
Utilisateur anonyme
14 févr. 2013 à 16:07
14 févr. 2013 à 16:07
En y regardant de plus près, je pense plutôt que tu as simplement mal écrit tes jointures et que tu n'avais pas à joindre plusieurs fois la même table.
Tu ne voulais pas plutôt faire :
Tu ne voulais pas plutôt faire :
SELECT systeme.systeme, systeme.etat, maintenance.date, panne.heureDebut FROM systeme INNER JOIN maintenance ON maintenance.idSysteme = systeme.idSysteme INNER JOIN panne ON panne.idSysteme = systeme.idSysteme WHERE systeme.idCategorie=1
pythong
Messages postés
7
Date d'inscription
vendredi 1 avril 2011
Statut
Membre
Dernière intervention
14 février 2013
14 févr. 2013 à 16:33
14 févr. 2013 à 16:33
Bonjour,
En effet j'avais inversé le nom des tables à joindre en mettant systeme au lieu de maintenance et panne.
Merci beaucoup pour votre aide.
J'ai une dernière question, avec cette requête pour qu'un systeme soit affiché il faut qu'il possède une maintenance ainsi qu'une panne. Un systeme ne possédant pas de panne n'est pas affiché. Aurait-il un moyen d'éviter cela ?
Merci encore pour votre aide,
pythong
En effet j'avais inversé le nom des tables à joindre en mettant systeme au lieu de maintenance et panne.
Merci beaucoup pour votre aide.
J'ai une dernière question, avec cette requête pour qu'un systeme soit affiché il faut qu'il possède une maintenance ainsi qu'une panne. Un systeme ne possédant pas de panne n'est pas affiché. Aurait-il un moyen d'éviter cela ?
Merci encore pour votre aide,
pythong
Utilisateur anonyme
14 févr. 2013 à 16:38
14 févr. 2013 à 16:38
...FROM systeme LEFT JOIN maintenance...
LEFT JOIN va fficher toutes les lignes de la table de gauche, même s'il n'y a pas de ligne qui correspond dans la table de droite
pythong
Messages postés
7
Date d'inscription
vendredi 1 avril 2011
Statut
Membre
Dernière intervention
14 février 2013
14 févr. 2013 à 16:40
14 févr. 2013 à 16:40
Un grand merci pour votre aide tout fonctionne correctement.
Excellente fin de journée
Excellente fin de journée
14 févr. 2013 à 15:44
Merci pour votre réponse.
Cependant auriez-vous un exemple ?
Merci d'avance