Partage
  • Partager sur Facebook
  • Partager sur Twitter

[mySQL] Jointure seulement si...

    10 juin 2010 à 15:13:18

    Bonjour,

    Voilà j'aimerai bien modifier certaines requêtes d'un forum punBB afin d'aller rechercher dans la table AGENDA des donnés, uniquement si le champ agenda_id correspondent bien à un id dans la table AGENDA.

    Je ne trouve rien pour ce faire.

    Voici la requête en question :
    $result = $db->query('SELECT t.subject, t.closed, t.num_replies, t.sticky, t.agenda, t.agenda_id, t.news, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, s.user_id AS is_subscribed FROM '.$db->prefix.'topics AS t INNER JOIN '.$db->prefix.'forums AS f ON f.id=t.forum_id LEFT JOIN '.$db->prefix.'subscriptions AS s ON (t.id=s.topic_id AND s.user_id='.$pun_user['id'].') LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id='.$id.' AND t.moved_to IS NULL') or error('Unable to fetch topic info', __FILE__, __LINE__, $db->error());
    


    Merci
    Corentin
    • Partager sur Facebook
    • Partager sur Twitter
      10 juin 2010 à 23:08:29

      Il manque des informations importantes pour répondre à cette question. En fait, la table AGENDA contient une colonne id et une autre agenda_id qui possède une contrainte FOREIGN KEY sur la colonne id de la même table ?

      Dans ce cas-ci, s'il y a bien une FK, tu es certain que agenda_id correspond bien à un id dans la table (intégrité référentielle).
      • Partager sur Facebook
      • Partager sur Twitter
        11 juin 2010 à 13:40:51

        Ma table agenda contient un champ ID et un champ topic_id, mais ce dernier champ n'est pas toujours rempli (il peut y avoir des events qui ne sont pas liés à des messages du forum).

        Pour le forum, si le champ agenda == 1 alors normalement il y a un agenda_id valide (est-il possible de vérifié si agenda_id correspond bien à un id de la table agenda ?).

        Ou sinon que veux-tu dire par : FOREIGN KEY

        Merci
        • Partager sur Facebook
        • Partager sur Twitter

        [mySQL] Jointure seulement si...

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown