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 :

Ecrire un SQL qui paraît simple


Sujet :

Requêtes PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 95
    Par défaut Ecrire un SQL qui paraît simple
    Bonjour à tous,
    soit une table A dotée d'une FK vers une table B. B est elle-même dotée d'une FK vers une table C.
    Pour finir, A est également dotée directement d'une FK vers la table C (appelons-là fkC').

    Nous savons que notre base est erronée pour partie (ceci n'est pas un exercice, malheureusement...), et je cherche à identifier les enregistrements de A tels que a.fkB.fkC =/= a.fkC' (ce qui n'aurait donc jamais dû arriver).

    Sauriez-vous m'indiquer comment procéder?
    Je ne vois pas comment y parvenir avec un except.

    D'avance, merci pour votre aide.
    Cordialement,
    Thomas

  2. #2
    Membre Expert Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Par défaut
    Bonjour,

    Une requête de ce genre ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    select a.id, a.fkc-prime 
    from tablea a 
     
    where not exists (
    select 1 from tablea ta 
    inner join tableb tb
    on ta.fkb = tb.id   
     
    where ta.id = a.id 
    and tb.fkc <> a.fkc-prime)

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 95
    Par défaut
    Bonjour,
    je ne pense pas que cela soit correct, en tout cas cela me ramène trop de tuples;(

    Mais je me suis peut-être fourvoyé en réécrivant la requête.

    Merci pour votre aide en tout cas, cela m'a mis sur la piste que je cherchais.
    Cordialement,
    Thomas

  4. #4
    Membre Expert Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Par défaut
    Citation Envoyé par Wise_Sherkaan Voir le message
    Bonjour,
    je ne pense pas que cela soit correct, en tout cas cela me ramène trop de tuples;(
    Mince et moi qui suis trop vieux pour me reconvertir
    Blague mise à part, une requête ça se teste toujours sur un jeu de données et ça se juge sur un résultat attendu
    Il y a des jours où c'est Ok du premier coup mais la plupart du temps il y a des ajustements à faire, c'est la vie

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 001
    Billets dans le blog
    6
    Par défaut
    Avec une simple jointure !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT *
    FROM A
         JOIN B ON A.PK = B.FKA
         JOIN C ON B.PK = C.FKB AND 
                   A.FKC <> C.PK
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  6. #6
    Membre Expert Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Par défaut
    ça présente mieux en effet !

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

Discussions similaires

  1. Petit casse tête qui paraît simple sur une petite requête
    Par bernidupont dans le forum Développement
    Réponses: 12
    Dernier message: 14/09/2012, 18h37
  2. Réponses: 10
    Dernier message: 27/05/2010, 16h53
  3. Réponses: 1
    Dernier message: 26/02/2009, 15h38
  4. Requête SQL qui a l'air simple mais qui est musclée !
    Par tamiii dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/07/2008, 16h51
  5. [Defi] Query SQL qui semble tres simple
    Par Wakko2k dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/04/2004, 10h01

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