Partage
  • Partager sur Facebook
  • Partager sur Twitter

[SQL - PL/SQL] (+)

Qu'est ce donc

Sujet résolu
    13 septembre 2010 à 10:03:32

    Bonjour

    Je suis en train d'étudier un code PL/SQL et je tombe régulièrement sur ce type de ligne :
    TABLE.COLONNE(+)=TABLE2.Colonne2 (+)

    Et je ne trouve nulle part a quoi cela correspond, (tuto SdZ, google, site W3C ...)

    Naturellement je pense a une auto-incrémentation (en survolant mes codes j'ai cru voir des (-) mais je ne le retrouve plus a l'instant donc je n'en suis plus sur)

    L'un d'entre vous a t-il une idée de ce que c'est ?

    Merci !!!!
    • Partager sur Facebook
    • Partager sur Twitter
      13 septembre 2010 à 10:55:51

      Le signe (+) dans une requête sert à indiquer que tu veux faire une jointure externe.
      Par exemple :
      SELECT a.nom, c.id
      FROM articles a, commandes c
      WHERE a.id = c.article_id
      

      Cette requête va t'afficher les articles qui sont associés à une commande.

      Mais si tu veux aussi afficher les articles qui ne sont associés à aucune commande ? En gardant cette même requête, il faudra ajouter l'opérateur (+) comme ceci :
      SELECT a.nom, c.id
      FROM articles a, commandes c
      WHERE a.id = c.article_id(+)
      

      Le (+) doit être mis du côté où tu veux que null soit retourné si aucun résultat n'est trouvé.
      Ceci est l'équivalent de :
      SELECT a.nom, c.id
      FROM articles a
      LEFT JOIN commandes c ON a.id = c.article_id
      

      Bien sûr, pour des raisons de lisibilité, cette dernière requête est préférable.

      Tu auras plus de détails dans la doc.
      • Partager sur Facebook
      • Partager sur Twitter
        13 septembre 2010 à 14:20:52

        Merci bien.

        Un sujet de plus résolu !!!
        • Partager sur Facebook
        • Partager sur Twitter
          13 septembre 2010 à 15:11:59

          c'est l'ancienne méthode en faite le + , pour les outer joins ;), dans ton exemple c'est du full outer join
          • Partager sur Facebook
          • Partager sur Twitter

          [SQL - PL/SQL] (+)

          × 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