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 :

Requete pour obtenir les infos du même uid sur une 2e table : n'affiche que les lignes ayant un uid commun [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Pub
    Inscrit en
    Octobre 2018
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Pub
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2018
    Messages : 26
    Points : 17
    Points
    17
    Par défaut Requete pour obtenir les infos du même uid sur une 2e table : n'affiche que les lignes ayant un uid commun
    Bonjour,

    J'ai actuellement deux tables :
    Calendar qui est mise à jour chaque jour (source ics) avec le calendrier du club, donc une liste complète des matchs pour la saison.
    Results qui est mise à jour à chaque match (le match s'ajoute dans cette table quand on encode le resultat, donc au début, on n'y trouvera que quelques matchs.

    Les deux tables utilisent un unique id (md5 du match) commun, appelé C_UID dans Calendar et uid dans Results.

    J'interroge la table Calendar pour obtenir la liste complète des matchs d'une catégorie spécifique. Jusque là, rien de plus simple.
    Où l'on a un souci, c'est si on fait une requete jointe sur la table Results, l'affichage sur la page ne donne plus que les matchs joués (qui ont un résultat).

    Voici le code utilisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $matchs_resultats = $wpdb->get_results("
    SELECT c.C_SUMMARY, c.C_TIMESTAMP_START, c.C_TIMESTAMP_END,c.C_DESCRIPTION, c.C_LOCATION
    FROM calendar c
    JOIN results r ON c.C_UID = r.uid
    ORDER BY c.C_TIMESTAMP_START asc;
    ");
    Comment obtenir la liste des matchs pour la saison et le resultat de ceux déjà joués ?

    Merci

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 194
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 194
    Points : 8 409
    Points
    8 409
    Billets dans le blog
    17
    Par défaut
    Ton JOIN est en réalité un INNER JOIN qui ne conserve que les lignes ayant une correspondance dans les tables de gauche et de droite.
    Or tu veux également les lignes de la table de gauche sans correspondance dans la table de droite => Il faut un LEFT OUTER JOIN, ex.

    SELECT
        c.C_SUMMARY, c.C_TIMESTAMP_START, c.C_TIMESTAMP_END, c.C_DESCRIPTION, c.C_LOCATION, 
        r.* /* À remplacer par les colonnes nécessaires */
    FROM calendar AS c
    LEFT OUTER JOIN results AS r ON c.C_UID = r.uid
    ORDER BY c.C_TIMESTAMP_START ASC
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Membre à l'essai
    Homme Profil pro
    Pub
    Inscrit en
    Octobre 2018
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Pub
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2018
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    Ok, merci, j'avais même essayé avec CROSS JOIN mais sans résultat.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/03/2019, 08h44
  2. requête pour obtenir les infos du référentiel BO
    Par denils dans le forum Administration-Migration
    Réponses: 3
    Dernier message: 30/06/2009, 20h31
  3. Requête SQL pour obtenir les intitulés des champs d'une table
    Par Zakapatul dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/12/2008, 09h51
  4. Réponses: 1
    Dernier message: 05/07/2007, 08h34
  5. Réponses: 3
    Dernier message: 23/05/2007, 23h52

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