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

Requêtes MySQL Discussion :

[MySQL] Jointure sur une table déjà jointe


Sujet :

Requêtes MySQL

  1. #1
    Membre éclairé
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Points : 790
    Points
    790
    Par défaut [MySQL] Jointure sur une table déjà jointe
    Bonjour,
    j'ai trois tables que je souhaite lier entre elles assez particulièrement.

    Voici une énumération des tables avec les champs liés

    • J'ai une table forums avec f_id
    • J'ai une table topics avec un champ f_id (lié à f_id de la table forums), et un champ t_last_p_time donnant le timestamp du dernier message posté dans ce sujet
    • J'ai une table topics_read qui comprend un champ t_id (lié au topic) ainsi qu'un champ tr_last_time donnant la date à laquelle nous avons lu le dernier message de ce sujet (cette table comprend également un champ u_id pour l'ID du membre)


    Mon but est de savoir s'il reste des sujets non lus dans le forum ou non, je dois donc construire une requète qui :
    1. Sellectionne comme table principale les forums
    2. Joint les forums à la table topics pour récupérer le nombre de sujets non lus
    3. Pour savoir si un sujet est lu on joint la table topics à la table topics_read et on compare topics.t_last_p_time à topics_read.tr_last_time


    Le problème que j'ai rencontré est que lorsque je met deux LEFT JOIN dans une requète, ca joint la table topics à forums, et topics_read à forums. Or moi je veux joindre le résultat d'une jointure entre topics_reads / topics avec forums.

    Peut on gérer ca avec des ( ) sur les jointures ? je n'ai pas trouvé comment faire, merci pour votre aide.
    Testez le forum Fire Soft Board, un forum libre, gratuit et français.

    Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.

  2. #2
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    BOnjour,

    jointure entre topics_reads / topics avec forums.
    SQL travaille sur des ensembles, le résultat d'1 requête est 1 ensemble, donc, si ta v° de MYSql supporte les s/requêtes tu peux faire qque chose ds ce genre là (en pseudo-sql )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT ensemble1.colx, forums.coly
    FROM
    (
    SELECT "les colonnes qui vont bien"
    FROM topics-reads
    JOIN  topics 
    ON ...
    ) AS ensemble1
    JOIN forums
    ON ensemble1."colonne qui va bien" = forums."colonne qui va bien"
    A +

  3. #3
    Membre éclairé
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Points : 790
    Points
    790
    Par défaut
    Merci pour ta réponse je test ça demain et je tiens au courant.

    A partir de quelle version MySQL supporte les requètes imbriquées ? Car je dois essayé de rendre mon application portable le plus possible sur différents hébergeurs.
    Testez le forum Fire Soft Board, un forum libre, gratuit et français.

    Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.

  4. #4
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    re,

    Depuis la 4.1 je crois.

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

Discussions similaires

  1. Jointure sur une table de relation
    Par orion99 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 04/03/2014, 11h18
  2. [MySQL] Jointure sur une même table
    Par LostRailler dans le forum Requêtes
    Réponses: 1
    Dernier message: 14/09/2011, 17h19
  3. Requete Auto jointure sur une table
    Par Guillaume 78 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 28/11/2007, 09h26
  4. Plusieurs jointures sur une table
    Par Tchupacabra dans le forum Langage SQL
    Réponses: 5
    Dernier message: 21/09/2006, 15h23
  5. Réponses: 12
    Dernier message: 12/06/2006, 14h29

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