begin process at 2012 05 31 13:14:29
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Bases de données

 > 

Quand 2 clés etrangeres se référent à un meme champs


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Quand 2 clés etrangeres se référent à un meme champs

mardi 3 janvier 2006 à 20:49:21 | Quand 2 clés etrangeres se référent à un meme champs

Franquito

Bonsoir à tous

Tout d'abord je vous explique mon architecture BDD

table Historique :
*id_historique
*actif
*passif
*id_piece
*id_action
*time

table Joueur :
*id_joueur
*pseudo

Voila,  les attributs passif et actif de la table Historique sont enfait des clés étrangères se referant à l'id_joueur de la table Joueur.

Je voudrait faire une requête sql qui m'affiche le tableau historique avec les pseudos respectifs des clés actif et passif.

Comment faire une jointure quand on a deux clés etrangere se referant au meme champs ?
mercredi 4 janvier 2006 à 01:19:00 | Re : Quand 2 clés etrangeres se référent à un meme champs

Franquito

J'ai fait un petit shema pour mieux comprendre :


mercredi 4 janvier 2006 à 08:56:54 | Re : Quand 2 clés etrangeres se référent à un meme champs

f6xara

Celà ne marche-t-il pas? Select * from historique, joueur where actif=id_joueur and passif = id_joueur


mercredi 4 janvier 2006 à 09:04:36 | Re : Quand 2 clés etrangeres se référent à un meme champs

Franquito

non car comment selectionne tu les pseudos ?
mercredi 4 janvier 2006 à 09:08:51 | Re : Quand 2 clés etrangeres se référent à un meme champs

f6xara

Je suis pas sur de comprendre ta réponse mais peut être une solution

Select * from historique, joueur where actif=id_joueur and passif = id_joueur  where pseudo = 'le pseudo"


mercredi 4 janvier 2006 à 09:33:12 | Re : Quand 2 clés etrangeres se référent à un meme champs

Franquito

Enfait je souhaite afficher le tableau Historique, mais a la place d'avoir les numero d'actif et passif, je voudrais avoir leur pseudo.

J'ai un debut de réponse avec cette maniere de proceder, mais le probleme c'est que cela n'affiche rien lol.

SELECT h.id_historique, j1.pseudo AS joueurActif, j2.pseudo AS joueurPassif, h.id_piece, h.id_action, h.time
FROM Historique AS h, Joueur AS j1, Joueur AS j2
WHERE h.actif = j1.id_joueur
AND h.passif = j2.id_joueur
AND (
h.actif =14
OR h.passif =14
)


mercredi 4 janvier 2006 à 09:43:48 | Re : Quand 2 clés etrangeres se référent à un meme champs

f6xara

Tu dois le faire sous 2 requetes car tu fais les jointures correspondantes à une requete ou tu voudrais tous les passifs ET actifs
SELECT id_historique, pseudo, id_piece, id_action, time
FROM Historique , Joueur
WHERE actif = id_joueur
AND
actif =14

SELECT id_historique, pseudo, id_piece, id_action, time
FROM Historique , Joueur
WHERE passif = id_joueur
AND passif
=14

mercredi 4 janvier 2006 à 09:57:28 | Re : Quand 2 clés etrangeres se référent à un meme champs

malalam

Administrateur CodeS-SourceS
Hello,

SELECT
        HISTO.ID_PIECE,
        HISTO.ID_ACTION,
        HISTO.TIME,
        JR.PSEUDO AS PSEUDO_ACTIF,
        JR2.PSEUDO AS PSEUDO_PASSIF
FROM
        HISTORIQUE HISTO,
        JOUEUR JR,
        JOUEUR JR2
WHERE
         JR2.PSEUDO = (SELECT JOUEUR.PSEUDO FROM JOUEUR WHERE JOUEUR.ID_JOUEUR = HISTO.PASSIF) AND
         JR.PSEUDO =
(SELECT JOUEUR.PSEUDO FROM JOUEUR WHERE JOUEUR.ID_JOUEUR = HISTO.ACTIF)
mercredi 4 janvier 2006 à 10:19:23 | Re : Quand 2 clés etrangeres se référent à un meme champs

Franquito

salut malalam,

Les requetes imbriqués sont elles la seule solution ? Car ma bdd ne les supporte pas :(

mercredi 4 janvier 2006 à 10:25:17 | Re : Quand 2 clés etrangeres se référent à un meme champs

malalam

Administrateur CodeS-SourceS
Réponse acceptée !
Alors, 2 requêtes :-(

SELECT

        HISTO.ID_PIECE,
        HISTO.ID_ACTION,
        HISTO.TIME,
        HISTO.PASSIF,
        JR.PSEUDO AS PSEUDO_ACTIF
FROM
        HISTORIQUE HISTO, JOUEUR JR
WHERE
         HISTO.ACTIF = JR.ID_JOUEUR

mysql_query ...
while ($res = mysql_fetch_assoc(...)) {
    // SELECT JR.PSEUDO FROM JOUEUR JR WHERE JR.ID_JOUEUR = '.$res['PASSIF'].'
    // on récupère : mysql_query, mysql_fetch_assoc dans $res2...
   // et enfin, on affiche chaque $res et $res2.
}
 

1 2

Cette discussion est classée dans : table, id, joueur, clés, historique


Répondre à ce message

Sujets en rapport avec ce message

problème de mise à jour de base de données [ par rildspael ] Ben en fait maintenant j'ai refait ce code, je me suis concentré, j'ai tout analysé mais rien ne marche encore et je ne comprends pas : le voici :Donc Sélectionner les lignes différentes entre deux tables [ par Mikemadest ] Bonjour,J'ai cherché sans trouver de réponse à mon problème,ce qui m'amène à vous poser cette question !D'avance je m'excuse si j'ai raté la solution Afficher une ligne d'une table mysql [ par Alferox ] Bonjours,bon bin une question de base toute con.Je voudrais afficher uniquement la ligne qui port l'id 2 d'une table. Il n'y a pas plus simple que de selectionner une id dans une base de données [ par tomatokatchup ] Voila mon probleme :J'ai créer une table qui se contient les réultats d'un formulaire remplis par les visiteurs de mon site. A chaque validation du fo [MySQL] Sauvegarde d'un tableau dans une table [ par cedvoyage ] Bonjour,J'aimerais sauvegarder un tableau (multimensionnel) dans ma base MySQL.Or quand j'essaye je n'ai que 'Array' de marquer dans le champ de ma ta requete balaise [ par eax ] salutg un pb avec une requete mysql qui affiche les champs d'une table A (table des photos) et d'une table B (table des comentaires), je veux afficher MySQL DELETE [ par Mamax ] Salut a tous!!!Est ce que quelqu'un pourrait m'indiquer la syntax de la clause WHERE pour pouvoir supprimer plusieurs éléments en même temps.J'ai essa pb d'affichage de table [ par nikos283 ] Bonjour, J'ai un probleme pour afficher une table, tout dabord voici les tables:annuaire(id_annuaire, nom_annuaire)centres(id_centres,nom_centres)serv debutant probleme de session! [ par jimmy69 ] bonjour a tous,voila je debute en php et je suis en train de realiser un espace menbresou ceux ci peuvent poster des news un truc tout simple!j'ai don CREATE TABLE images ????? [ par spike911 ] Je c'est ce surment un question newbie mais c'est pas grave je me lancer P"S je ne connais pas tres bien le PHPQuoi sa veu dire sa:CREATE TABLE images


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales