IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Concaténation 3 tables [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2019
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2019
    Messages : 24
    Par défaut Concaténation 3 tables
    Bonjour,

    En fait j'ai une table "Matchs", une table "Equipes", une table "Categories" et une table "Clubs".

    Dans matchs j'ai un tableau qui m'affiche quelle équipe va jouer contre quelle équipe (une équipe est définie par son club ainsi que par sa catégorie). J'ai donc id_equipe_A et id_equipe_B, pas de soucis je peux récupérer l'id, mais j'aimerais concaténer "categorie club" à la place de l'id_equipe, mais je n'y arrive pas.

    J'ai déjà réussi à concaténer pour deux autres champs, mais il n'y avait pas de table intermédiaire comme ici (la table Equipes)

    Voici le code que j'avais utilisé pour concaténer mes deux autres champs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CONCAT(k.name," ",k.firstname) as "K200"
    Mais ici il n'y avait pas de table entre les deux, donc avec un join j'ai pu le récupérer facilement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ->join('kaput k', 'matchs.id_K200 = k.id_K200, 'left')
    Merci d'avance pour votre aide, parce que là je ne vois pas comment résoudre ce casse-tête

  2. #2
    Membre Expert
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    946
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 946
    Par défaut
    Bonjour

    Peut-être des spécialistes pourront vous éclairer.
    Pour ma part, vous ne donnez pas assez d'informations : définitions des tables (l'ensemble des colonnes), relations entre elle, ce que vous cherchez à avoir (un exemple serait le bienvenue).

    J'espère que quelqu'un pourra vous aider.

    Pierre

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2019
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2019
    Messages : 24
    Par défaut
    Bonjour Pierre,

    Je te remercie tout d'abord de prendre le temps de te pencher sur mon soucis.

    Concernant les tables elles sont aux nombres de 4 en tout.

    Matchs (je ne mets pour plus de facilité que les champs requis)
    id_equipe_A
    id_equipe_B

    Equipes
    id_equipe
    id_categorie
    id_club

    Clubs
    id_club
    nom_club

    Categories
    id_categorie
    categorie

    Le but serait depuis le tableau des matchs de pouvoir afficher les équipes sous la forme (categories.categorie, " ", clubs.nom_club)

    Mais je bute avec la table equipes qui se trouvent entre les 2

  4. #4
    Membre Expert
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    946
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 946
    Par défaut
    Question bête, savez-vous faire des requêtes avec jointure?
    Pierre

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2019
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2019
    Messages : 24
    Par défaut
    Bonjour,

    Oui, voici ma requête tel qu'elle est actuellement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $result = $this->db->select('matchs.*,  s.saison, a.nom_salle, CONCAT(k.name," ",k.firstname) as "K200", CONCAT(p.name," ",p.firstname) as "K201"')
                    ->from('matchs')
                    ->join('saisons s', 'matchs.id_saison = s.id_saisons')
                    ->join('kaput k', 'matchs.id_K200 = k.id_K200, 'left')
                    ->join('kaput p', 'matchs.id_K200 = p.id_K200, 'left')
                    ->join('salles a', 'matchs.id_salle = a.id_salle')
                    ->get();
            return $result->result_array();
    Mais je ne vois pas comment passer la table "equipes" qui justement fait la jointure entre "clubs", "categories" et "matchs" (sans mauvais jeu de mot)

  6. #6
    Membre Expert
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    946
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 946
    Par défaut
    Je ne connais pas cette façon d'écrire, alors je vais vous l'écrire tel que moi je connais.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    From Matchs m
        INNER JOIN Equipes e
            ON e.id_equipe = m.id_equipe_A
       INNER JOIN Clubs c
            ON c.id_club = e.id_club
       INNER JOIN Categories ca
            ON ca.id_categorie = e.id_categorie

    (INNER ou LEFT selon ce que vous voulez)

    Pierre

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2019
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2019
    Messages : 24
    Par défaut
    Pas de soucis

    Ah ben en fait c'est logique et tout bête en plus

    Si jamais quelqu'un en aurait besoin, voici le code que j'ai utilisé et qui fonctionne sous codeigniter pour récupérer la "categorie" en passant par la table "equipes"

    Le select
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CONCAT(cat1.categorie," ",c1.nom_club) as "equipeA", CONCAT(cat2.categorie," ",c2.nom_club) as "equipeB"
    La jointure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ->join('equipes e1', 'matchs.id_equipe_A = e1.id_equipe', 'inner')
                    ->join('equipes e2', 'matchs.id_equipe_B = e2.id_equipe', 'inner')
    		->join('clubs c1', 'e1.id_club = c1.id_club', 'inner')
    		->join('categories cat1', 'e1.id_categorie = cat1.id_categorie', 'inner')
                    ->join('clubs c2', 'e2.id_club = c2.id_club', 'inner')
    		->join('categories cat2', 'e2.id_categorie = cat2.id_categorie', 'inner')
    Je te remercie de m'avoir enlevé cette énorme épine du pied et d'avoir pris le temps de me répondre

    Bonne journée à toi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. concaténer des tables à 2 colonnes verticalement
    Par stefsas dans le forum SAS Base
    Réponses: 1
    Dernier message: 28/05/2008, 17h16
  2. Concaténation de table de sortie SAS
    Par mamiche dans le forum SAS Base
    Réponses: 23
    Dernier message: 21/05/2008, 22h55
  3. Concaténation de tables
    Par joshua12 dans le forum Access
    Réponses: 4
    Dernier message: 04/09/2006, 20h56
  4. Réponses: 2
    Dernier message: 12/05/2006, 08h35
  5. [SQL] Concaténation de table
    Par KikiWolf59 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 01/09/2005, 18h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo