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 :

transformer une requête


Sujet :

SQL Oracle

  1. #1
    Membre expérimenté Avatar de mongilotti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2003
    Messages : 314
    Par défaut transformer une requête
    salut,
    est ce que peux transformer cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    select montant
    from   facture
    where id_client in (select id
                             from client 
                             where nom like 'A%')
    order  by num asc;
    vers cette requêtte:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    select montant
    from   facture F, client c
    where f.id_client=c.id
    and    c.nom like 'A%'
    order by f.num asc;
    c'est à dire est ce j'aurais le même résultat sans problème.
    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    oui et avantageusement !
    la première est loin d'être un modèle optimale !!!

  3. #3
    Membre expérimenté Avatar de mongilotti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2003
    Messages : 314
    Par défaut
    est ce que je dois pas faire attention aux valeurs NULL de part et d'autres de la jointure entre les 2 tables dans la 2ème requête?

    et si je change par EXISTS au lieu de IN dans la 1ère requête, je crois que ça deviendrais plus optimiser.

    Merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    Tu as des factures sans client et des clients sans nom ou sans id ?
    J'ai fait une poignée de test et c'est pareil.

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Quitte à bien écrire vos requête, autant l'écrire ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      SELECT f.montant
        FROM facture f
             INNER JOIN client c
               ON f.id_client = c.id
       WHERE c.nom LIKE 'A%'
    ORDER BY f.num ASC;

  6. #6
    Membre expérimenté Avatar de mongilotti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2003
    Messages : 314
    Par défaut
    Merci pour vos réponse.

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

Discussions similaires

  1. [AC-2007] Transformer une requêtes en table
    Par layzzz dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 07/04/2011, 16h42
  2. Réponses: 2
    Dernier message: 07/05/2010, 11h34
  3. Transformer une requête en chaîne de caractères
    Par DurDur dans le forum VBA Access
    Réponses: 1
    Dernier message: 14/03/2009, 18h40
  4. Transformer une requête sql dynamique
    Par ttttnht dans le forum Sybase
    Réponses: 5
    Dernier message: 24/07/2007, 07h54
  5. Transformer une requête imbriquée
    Par cans38 dans le forum Langage SQL
    Réponses: 11
    Dernier message: 16/07/2007, 20h04

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