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

MS SQL Server Discussion :

explication code


Sujet :

MS SQL Server

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 140
    Points : 166
    Points
    166
    Par défaut explication code
    Bonjour,

    Je met à jour du code SQL utilisé par une de nos application suite à une mise à jour de Sever SQL chez notre client.

    Ce code est issu de plusieurs développeurs.

    j'ai entre autre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    FROM #UtilMoyen u,  #Contenu ct 
    WHERE ct.ID_TRANSMISSION =* u.ID_TRANSMISSION  
    AND (ct.ID_UTILISATION_MOYEN =* u.ID_UTILISATION_MOYEN [b]OR[/b] ct.ID_UTILISATION_MOYEN = 0)
    Je ne comprend pas l'impact du OR.

    Es t'il superflut ou peut il servir ?

    Merci d'avance

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 140
    Points : 166
    Points
    166
    Par défaut
    Je reécrit la requete plus simplement,



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM tab1 t1, tab2 t2 WHERE t1.id =* t2.id OR t1.id = 0
    Après plusieurs essai j'en suis arrivé à la conclusion que le résultat était équivalent à la concaténation des deux tables issues des requetes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM tab1 t1, tab2 t2 WHERE t1.id = t2.id /* INNER JOIN */
    SELECT * FROM tab1 t1, tab2 t2 WHERE t2.id = 0 /* CROSS JOIN */
    Mais je ne sais tjs pas pourquoi.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 29
    Points : 35
    Points
    35
    Par défaut
    hé bien cela permet de ramener SYSTEMATIQUEMENT les lignes de contenu dont ID_UTILISATION_MOYEN vaut 0 même si elle n'ont pas de correspondance dans #UtilMoyen.
    DBA Oracle(OCA) / SQL Server 2000
    "Trop anticiper les problèmes, c'est parfois les générer..."

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 140
    Points : 166
    Points
    166
    Par défaut
    Bonjour,

    Merci à toi SFAUVEL, j'en était arrivé à la même conclusion.
    Après une étude spécifique à mon projet je me suis rendu compte que ce fonctionnement était indésirable. Finalement compliquer le code pour rajouter des défaut.

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

Discussions similaires

  1. Explication code d'une Servlet !
    Par tiph02 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 04/02/2009, 23h54
  2. Explication code VBA svp
    Par Guns Of The Patriots dans le forum VBA Access
    Réponses: 6
    Dernier message: 10/06/2008, 12h33
  3. explication code vba
    Par akmer dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/04/2008, 09h01
  4. explication code vba
    Par akmer dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/04/2008, 11h12
  5. explication code
    Par lolothom dans le forum Access
    Réponses: 3
    Dernier message: 03/02/2006, 21h22

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