Relier trois tables ...
Résolu/Fermé
A voir également:
- Relier trois tables ...
- Tables des matières word - Guide
- Voici trois pannes que l’on peut rencontrer au démarrage d’un ordinateur : - Guide
- La blague des trois nains réponse ✓ - Forum Loisirs / Divertissements
- Tables ascii - Guide
- Trois nains vont à la mine - Forum Loisirs / Divertissements
2 réponses
arthurg95
Messages postés
2421
Date d'inscription
dimanche 24 février 2008
Statut
Membre
Dernière intervention
4 juin 2014
341
15 juil. 2013 à 15:13
15 juil. 2013 à 15:13
Bonjour,
Quelle requête effectuez vous pour "réunir les 3 tables" ?
Quelle requête effectuez vous pour "réunir les 3 tables" ?
Bonjour,
Voici ma requête :
que j'essaie d'executer mais sans aucune valeur de retour...
Merci
Voici ma requête :
SELECT [PLAN].NoPlan, SOUS_PIECE.id_SP, PIECE.NoSerie FROM [PLAN] INNER JOIN PIECE ON [PLAN].NoPlan = PIECE.NoPlan INNER JOIN SOUS_PIECE ON PIECE.NoSerie = SOUS_PIECE.idPiece AND [PLAN].NoPlan = SOUS_PIECE.NoPlanSP
que j'essaie d'executer mais sans aucune valeur de retour...
Merci
arthurg95
Messages postés
2421
Date d'inscription
dimanche 24 février 2008
Statut
Membre
Dernière intervention
4 juin 2014
341
15 juil. 2013 à 15:28
15 juil. 2013 à 15:28
Essayez avec des NATURAL JOIN, comme ceci :
SELECT ... FROM PIECE NATURAL JOIN SOUS_PIECE NATURAL JOIN PLAN
SELECT ... FROM PIECE NATURAL JOIN SOUS_PIECE NATURAL JOIN PLAN
arthurg95
Messages postés
2421
Date d'inscription
dimanche 24 février 2008
Statut
Membre
Dernière intervention
4 juin 2014
341
15 juil. 2013 à 15:37
15 juil. 2013 à 15:37
Ah oui ce n'est pas suppôrté par SQLSERVER...
Bon bah à l'ancienne...
SELECT ...
FROM piece, sous_piece, plan
WHERE plan.noplan = piece.noplan
AND piece.noserie = sous_piece.id[.....]
Ah merde, je viens de voir l'erreur... Il faut que les colonnes contiennes le mêmes mêmes valeur pour que la jointure soit faite...
Par exemple, dans Piece vous avez dans la colonne idpiece : 1234, 4567
Si dans sous piece vous n'avez que 1234, seule la ligne avec 1234 apparaitra ;)
Et comme je vous que vos colonne n'ont pas les mêmes nom dans les tables, cette condition n'est probablement pas respecté, si ?
Bon bah à l'ancienne...
SELECT ...
FROM piece, sous_piece, plan
WHERE plan.noplan = piece.noplan
AND piece.noserie = sous_piece.id[.....]
Ah merde, je viens de voir l'erreur... Il faut que les colonnes contiennes le mêmes mêmes valeur pour que la jointure soit faite...
Par exemple, dans Piece vous avez dans la colonne idpiece : 1234, 4567
Si dans sous piece vous n'avez que 1234, seule la ligne avec 1234 apparaitra ;)
Et comme je vous que vos colonne n'ont pas les mêmes nom dans les tables, cette condition n'est probablement pas respecté, si ?
Pourtant je crois bien que oui ...
Si je requete entre piece et sous_piece : j'obtiens bien id_Sp=1047 et NoSerie=00001
SI je requete entre piece et plan : j'obtiens bien NoSerie=00001 et NoPlan=12345
Maintenant si je requete entre sous_piece et plan : NoPlan=12345 et id_SP=1047.
Donc a priori tout se recoupe bien. Par contre si je requete les trois tables a la fois je n'obtiens rien du tout....
Est il nécessaire que je garde une entité Plan ?
Si je requete entre piece et sous_piece : j'obtiens bien id_Sp=1047 et NoSerie=00001
SI je requete entre piece et plan : j'obtiens bien NoSerie=00001 et NoPlan=12345
Maintenant si je requete entre sous_piece et plan : NoPlan=12345 et id_SP=1047.
Donc a priori tout se recoupe bien. Par contre si je requete les trois tables a la fois je n'obtiens rien du tout....
Est il nécessaire que je garde une entité Plan ?