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

SQL Oracle Discussion :

INNER JOIN et OU [11gR2]


Sujet :

SQL Oracle

  1. #1
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Points : 996
    Points
    996
    Par défaut INNER JOIN et OU
    Bonjour

    J'ai une requête qui doit me servir à envoyer des données identitaires, adresses et bancaire depuis un ERP à une appli tiers pour faire des mises à jour.
    Que ce soit les données de l'adresse ou coordonnées bancaire qui sont mises à jour dans l'ERP, la requête envoie toujours les mêmes rubriques à l'appli tiers pour ses mises à jour.

    J'ai pour faire simple deux différentiels de données un pour les adresses, un pour les coordonnées bancaires qui me servent à identifier les entrées à envoyer pour mise à jour.

    J'ai donc deux inner join sur chacun de mes différentiels

    ca ressemble à cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
       inner join differentiela diff on (      diff.resource_id = ahs.resource_id 
                                                  and diff.address_id = ad.address_id
                                                  and to_date(to_char(diff.last_update,'dd/mm/yyyy'),'dd/mm/yyyy') <> to_date(to_char(ad.last_update,'dd/mm/yyyy'),'dd/mm/yyyy')
                                                )
    et
        inner join differentielb diff on (      diff.resource_id = ahs.resource_id 
                                                  and diff.iban <> hea.iban
                                                  and to_date(to_char(diff.last_update,'dd/mm/yyyy'),'dd/mm/yyyy') <> to_date(to_char(hea.last_update,'dd/mm/yyyy'),'dd/mm/yyyy')
                                                )
    je cherche, sans faire de union si possible car cela reviendrait à avoir presque deux fois la même requête, à faire dans une seule et même requête mes deux tests soit l'un ou l'autre voir peut être les deux.

    quelque chose comme
    inner join
    OR
    inner join

    merci de votre aide

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Il faudra comparer, mais c'est fort possible qu'union soit (beaucoup) plus rapide.

    Sinon, il suffit de suivre votre instinct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
       inner join differentiela diff  on diff.resource_id         = ahs.resource_id 
                                     and ((diff.address_id        = ad.address_id
                                     and trunc(diff.last_update) <> trunc(ad.last_update))
                                      or  (diff.iban             <> hea.iban
                                     and trunc(diff.last_update) <> trunc(hea.last_update)))

  3. #3
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Points : 996
    Points
    996
    Par défaut
    Merci de votre retour.
    J'ai en faite deux tables de différentiels distincts A et B (pour les adresses et pour les données bancaires)
    Je pense effectivement que l'union est inévitable
    après réflexion cela va par ailleurs me permettre de simplifier les envois de mise à jour car je vais pouvoir distinguer les rubriques qui sont modifiées et ne renvoyer que celles qui changent

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

Discussions similaires

  1. Mysql Inner join
    Par ..:: Atchoum ::.. dans le forum Requêtes
    Réponses: 3
    Dernier message: 25/10/2007, 12h21
  2. Nombre de clauses ON dans un INNER JOIN
    Par Shadow aok dans le forum Requêtes
    Réponses: 5
    Dernier message: 30/06/2004, 15h42
  3. [ requeste sql ]INNER JOIN / OUTER JOIN
    Par hocinema dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/04/2004, 21h28
  4. Erreur lors d'une requete INNER JOIN
    Par k-lendos dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/03/2004, 15h09
  5. Inner Join & Select
    Par bakaneko dans le forum Langage SQL
    Réponses: 7
    Dernier message: 10/02/2004, 10h48

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