Requete croisement de table

Résolu
sdisp Messages postés 75 Date d'inscription jeudi 27 janvier 2005 Statut Membre Dernière intervention 17 octobre 2008 - 31 mai 2005 à 10:38
sdisp Messages postés 75 Date d'inscription jeudi 27 janvier 2005 Statut Membre Dernière intervention 17 octobre 2008 - 1 juin 2005 à 08:57
Bonjour,
je souhaiterais pouvoir croiser des ligne dans mon tableau, je expliques, j'ai une table de se genre:

id id_suivant référence
1 3 10
2 1 11
3 2 12

et je souhaiterais récupérer la référence et l'id lorsque id_suivant = id. Soit avoir:

id référence
1 12
2 10
3 11

Merci pour vos réponses.

8 réponses

cs_tecman Messages postés 63 Date d'inscription mercredi 5 mars 2003 Statut Membre Dernière intervention 29 juin 2005
31 mai 2005 à 11:36
Bonjour.



Il te suffit de faire une sélection des tuples de ta table en utilisant
une seconde fois cette même table (en veillant à aliaser cette seconde
instance).

Le croisement se réalise en faisant une liaison sur les champs id (table1) et id_suivant (alias de la table1).
Essaie :

select table1.id, table1.reference

from table1 inner join table1 as table1_alias on table1.id=table1_alias.id_suivant;



Tecman
3
sdisp Messages postés 75 Date d'inscription jeudi 27 janvier 2005 Statut Membre Dernière intervention 17 octobre 2008 1
31 mai 2005 à 14:06
Merci a Tecman pour saz réponse.
Mais maintenant il faut que je puisse exploiter la table que sa requette me retourne car je voudrais faire un INNER JOIN son resultat avec ma table du début et je ne sait pas comment faire.
Merci.
0
cs_tecman Messages postés 63 Date d'inscription mercredi 5 mars 2003 Statut Membre Dernière intervention 29 juin 2005
31 mai 2005 à 14:48
Oups !

Sans vouloir entrer dans une polémique sémantique, juste un petit
rappel : la requête retourne un jeu d'enregsitrement (ou rien !) appelé
également recordset par nos amis outre-manche.

Une table est une structure permettant la conservation de recordset.



Dans la proposition précédement faite, la table du début (table1 dans mon exemple) est utilisée.

Si tu désires d'autres champ, libre à toi de les rajouter dans la requête :

select table1.id, table1.reference, table1.monChamp1, etc ....


Bon courage.

Tecman
0
sdisp Messages postés 75 Date d'inscription jeudi 27 janvier 2005 Statut Membre Dernière intervention 17 octobre 2008 1
31 mai 2005 à 15:18
Mon probleme etant que j'ai un champ precedent egalement qui marche aussi sur cette base et que j'ai en plus besoin de la reference du début ainsi que sont id, en gros je veux:


id reference suivant precedent


avec suivant et precedent que je vais chercher de la maniere que tu ma montré mais pour le moment je ne parvien pas à avoir tout cela. Alors un petit coup de main stp.

Merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sdisp Messages postés 75 Date d'inscription jeudi 27 janvier 2005 Statut Membre Dernière intervention 17 octobre 2008 1
31 mai 2005 à 15:20
PS: pourquoi a l'affichage de mes question il n'y a pas de ENTER, merci...
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
31 mai 2005 à 20:55
Salut,

De retour à la ligne tu veux dire ?
Si tu utilises Opera je crois que c'est "normal".

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
sdisp Messages postés 75 Date d'inscription jeudi 27 janvier 2005 Statut Membre Dernière intervention 17 octobre 2008 1
1 juin 2005 à 07:13
Mon problème étant que j'ai un champ précèdent également qui marche aussi sur cette base et que j'ai en plus besoin de la référence du début ainsi que sont id, en gros je veux:

id référence suivant precedent

avec suivant et précèdent que je vais chercher de la manière que tu ma montré mais pour le moment je ne parviens pas à avoir tout cela. Alors un petit coup de main Merci.
0
sdisp Messages postés 75 Date d'inscription jeudi 27 janvier 2005 Statut Membre Dernière intervention 17 octobre 2008 1
1 juin 2005 à 08:57
Finalement en modifiant deux trois truc sur la requête de Tecman j'ai pu tout faire fonctionner

Merci beaucoup.
a+.
0
Rejoignez-nous