Requête entre deux table -> inner join ou autre? à l'aide... [Résolu]

Messages postés
4
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
21 novembre 2008
- - Dernière réponse : EricSQL
Messages postés
33
Date d'inscription
samedi 11 octobre 2008
Statut
Membre
Dernière intervention
24 février 2011
- 30 nov. 2008 à 13:35
Bonjour,
voici en deux mots la situation:
j'ai table1 qui pointe deux fois sur table2 avec les champs table1.id_table2_1 et  table1.id_table2_2
si je fais un SELECT * FROM table1, je vois bien les id mais j'aimerais voir le type à quoi se rapporte l'id qui se trouve dans la table2.
donc que dois-je mettre dans le SELECT puisque j'aimerai voir les deux différents types qui se trouvent dans la table2 mais avec les deux différents champs?
Je ne sais pas si j'ai été assez clair, sinon je peux être plus précis et concret...
Merci à tous pour votre aide.
p.s. j'aimerai garder cette structure (double accès depuis une table sur l'autre même si cette façon de faire est discutable, elle s'avère utile dans mon cas).
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
4
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
21 novembre 2008
3
Merci
Merci pour la réponse mais je crains de ne pas vraiment comprendre...

A quel moment peut on avoir une relation bijective si nous avons deux tables? Si nous avons un fk dans une table qui pointe sur un ID d'une autre, chaque requête nous retournera différents résultats en fonction de la requête. A ce moment, autant créer une table avec uniquement des champs.
Dans mon cas, j'ai bien deux fk différents qui pointent sur un champs.

Mais le problème a été résolu par deux requêtes distinctes puisque les deuxième est une relation 0-1 et donc facultatif.
Sinon, nous pouvons passer par le UNION mais c'est pas très propre. J'ai donc fait un test conditionnel en PHP si la valeur fk2 est à nulle, sinon, on fait la requête (avais oublié de préciser cela, désolé).

Merci dans tous les cas...

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 131 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Michococo
Messages postés
33
Date d'inscription
samedi 11 octobre 2008
Statut
Membre
Dernière intervention
24 février 2011
3
Merci
Tu dois faire une jointure entre Table1, Table2 et Table2 (2 fois table 2) :
Select t1.*, t21.*, t22.*
from table1 t1, table2 t21, table2 t22
where t1.id_table2_1 = t21.id
and t1.id_table2_2 = t22.id
;


/Eric

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 131 internautes nous ont dit merci ce mois-ci

Commenter la réponse de EricSQL
Messages postés
4992
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
9
0
Merci
bonjour,
j'ai table1 qui pointe deux fois sur table2 avec les champs table1.id_table2_1 et  table1.id_table2_2
si je fais un SELECT * FROM table1,

Cette relation est source d'erreur car elle n'est pas bijective..

cantador
Commenter la réponse de cs_cantador
Messages postés
4992
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
9
0
Merci
A quel moment peut on avoir une relation bijective  ?

Deux enregistrements différents doivent avoir des images différentes, sinon comment faire pour distinguer les pères ?
deux fils différents pourraient avoir le même père..
ça n'a pas de sens..(du point de vue mathématiques..)

Dans un mcd, il n'y a que des relations bijectives..
du moins je n'en connais pas d'autres..
imagine une gestion comptable..avec des relations comme la tienne..

cantador
Commenter la réponse de cs_cantador