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

Langage SQL Discussion :

requete synchronisé et sous requete


Sujet :

Langage SQL

  1. #1
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut requete synchronisé et sous requete
    Bonjour, ma question tourne autour de syntaxe sql et plan d'execution

    Dans le cas d'une requete synchro :

    est-ce que le plan d'exectution est le même pour r1.1 et r1.2:
    r1.1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT titre 
    FROM Messages m 
    WHERE exist (
      SELECT * 
      FROM messages m2 
      WHERE m.IdMembre=m2.IdMembre 
        AND m2.titre containing '?'
    )
       AND m.nat = 'F' ;
    r1.2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT titre 
    FROM Messages m 
    WHERE m.nat = 'F' 
      and exist (
         SELECT * 
         FROM messages m2 
         WHERE m.IdMembre=m2.IdMembre 
           AND m2
      ) ;
    La table directrice est m, l'ordre des restiction est-elle importante ?

    Merci de vos réponses.
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Il y a un problème dans le WHERE des sous-requêtes !
    Dans la première requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND m2.titre containing '?'
    containing n'est pas un mot du langage SQL à ma connaissance.
    Ce serait plutôt ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND m2.titre LIKE '%?%'
    Dans la seconde requête :
    Il manque la fin de la condition.

    Ceci dit, pour répondre à la question, c'est le SGBD qui optimise l'exécution de la requête. En principe, changer l'ordre des conditions dans le WHERE ne change pas le plan d'exécution.
    En l'occurrence, il va probablement commencer par restreindre la table m pour avoir moins de lignes à analyser avec le EXISTS.

    Tiens ! Au passage... ce n'est pas EXIST mais EXISTS !
    C'est pour ça qu'avec l'application des balises CODE dans le message, exist n'est pas colorié en bleu comme les autres mots du SQL.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. requete SQL avec sous requete qui ne fonctionne pas
    Par skyarnangel dans le forum Langage SQL
    Réponses: 8
    Dernier message: 06/02/2009, 14h47
  2. Sous-requete à partir d'une requete
    Par Pago dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 01/09/2007, 00h21
  3. Requete Update avec sous requete et jointure
    Par javaboy dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/05/2007, 11h03
  4. Requete Update avec sous requete
    Par joziel dans le forum Langage SQL
    Réponses: 7
    Dernier message: 28/08/2006, 15h15
  5. Requete avec une sous-requete... Ne fonctionne qu'a moitie..
    Par mythtvtalk.com dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 18/08/2003, 09h54

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