Effectuer 2 INNER JOIN sur la même table

pythong Messages postés 8 Statut Membre -  
pythong Messages postés 8 Statut Membre -
Bonjour,

Je souhaite effectuer deux INNER JOIN sur la même table mais à chaque fois le même message d'erreur revient :

- #1066 - Not unique table/alias: 'systeme'

Voici ma requête SQL :

- SELECT systeme.systeme, systeme.etat, maintenance.date, panne.heureDebut FROM systeme, maintenance, panne INNER JOIN systeme ON maintenance.idSysteme = systeme.idSysteme INNER JOIN systeme ON panne.idSysteme = systeme.idSysteme WHERE systeme.idCategorie=1

Mon but est de récupérer les champs systeme et etat de la table systeme, le champ date de la table maintenance et le champ heureDebut de la table panne afin de les afficher dans un tableau.

Merci d'avance pour votre aide,
pythong

A voir également:

3 réponses

Utilisateur anonyme
 
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.
0
pythong Messages postés 8 Statut Membre
 
Bonjour,

Merci pour votre réponse.

Cependant auriez-vous un exemple ?

Merci d'avance
0
Utilisateur anonyme
 
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 :

 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
0
pythong Messages postés 8 Statut Membre
 
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
0
Utilisateur anonyme
 
...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
0
pythong Messages postés 8 Statut Membre
 
Un grand merci pour votre aide tout fonctionne correctement.

Excellente fin de journée
0