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 PostgreSQL Discussion :

Requête SQL avec inner join, pas certaine de ma requête


Sujet :

Requêtes PostgreSQL

  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Analyse système
    Inscrit en
    Mars 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2015
    Messages : 1
    Par défaut Requête SQL avec inner join, pas certaine de ma requête
    Bonjour!!

    Si quelqu'un a du temps pour m'aider, ce serait fort apprécié ! C'est assez tordu, par contre je ne sais pas si c'est assez clair...

    Contexte : Mettre à jour les numéros français et anglais dans la table A à partir de la table C. En faisant un join sur la table Titres car le Titre français doit être égal dans B et dans C, ainsi que le Titre anglais dans B et dans C pour chaque enregistrement à mettre à jour dans A. Le Titre à vérifier se trouve dans B et non dans A, donc un produit les relie.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Update A
    Set      A.noFrancais = C.noFrancais,
               A.noAnglais = C.noAnglais  --  Pas certaine de cette ligne, mais si je mets D.noAnglais au lieu de C.noAnglais sur cette ligne, le where en bas inclut ceux dont  ( A.noFrancais = C.noFrancais or A.noAnglais = D.noAnglais...je ne comprends pas pourquoi :( )
    From  A
    Inner join B On B.produit = A.produit   
    Inner join Titres C  -- (C est un diminutif)
    On B.nomFrancais = C.nomFrancais
    Inner join Titres D   -- (D est un diminutif, même table que C mais join sur un autre champ)
      On B.nomAnglais = D.nomAnglais     --prise en compte des enregistrements dans A dont les titres (Francais + anglais) sont égaux dans B et dans C
    Where  ( A.noFrancais != C.noFrancais or A.noAnglais != D.noAnglais)  -- Les 2 numéros des titres ne doivent pas être égaux (sinon aucune mise a jour n'est requise..soit les deux ou un des deux peuvent ne pas être égal)

  2. #2
    Membre Expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Billets dans le blog
    8
    Par défaut
    Salut
    Je remarque un problème: la table A ne peut être directement utilisée dans le FROM.
    Le FROM doit être...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    From B
    Inner join Titres C
    On B.nomFrancais = C.nomFrancais
    Inner join Titres D 
    On B.nomAnglais = D.nomAnglais
    where B.produit = A.produit and ...
    @+

Discussions similaires

  1. Requête SQL avec inner join incorrect
    Par FabienLep dans le forum Langage SQL
    Réponses: 13
    Dernier message: 10/11/2014, 17h45
  2. Requête update avec inner join
    Par mattmax dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 23/05/2013, 14h53
  3. erreur de requête SQL avec ASP mais pas dans Access
    Par csszzen dans le forum Langage SQL
    Réponses: 6
    Dernier message: 16/03/2007, 09h07
  4. [Access] Problème dans une requête SQL avec INNER JOIN ?
    Par bds2006 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/06/2006, 10h57
  5. requête sql avec clause INNER JOIN
    Par new_wave dans le forum Langage SQL
    Réponses: 1
    Dernier message: 12/08/2005, 15h47

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