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 :

SQL exists et in


Sujet :

Langage SQL

  1. #1
    Membre averti
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 497
    Points : 330
    Points
    330
    Par défaut SQL exists et in
    Est ce que vous pouvez me confirmez que exists et in ne sont pas equivalent?

    Pour moi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM x WHERE id IN (Select id FROM x2)
    -> renvoie toutes les rows dont x.id est present dans x2


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM x WHERE EXISTS (Select id FROM x2)
    -> renvoie toutes les rows de x a partir du moment ou la requete sur x2 renvoie un resultat

    Est ca est ce possible?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM x WHERE id EXISTS (Select id FROM x2)
    -> similaire au in?

    Est ce juste? Ou je me trompe?
    Merci

  2. #2
    Scorpi0
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM myTable1 x1 WHERE EXISTS (SELECT id FROM myTable2 x2 WHERE x1.id = x2.id)
    <=>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM myTable1 where id in (SELECT id FROM myTable2)
    <=>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT x1.* FROM myTable1 x1, myTable2 x2 WHERE x1.id = x2.id
    La troisième méthode étant plus sympa quand même.

  3. #3
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 950
    Points : 5 849
    Points
    5 849
    Par défaut
    Salut,

    La requête 3 est équivalente aux 2 autres dans le cadre d'une relation 1,1.
    Sinon elle renvoie autant de ligne qu'il y en a dans table2

  4. #4
    Membre averti
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 497
    Points : 330
    Points
    330
    Par défaut
    ok merci

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

Discussions similaires

  1. [AC-2010] equivalent de la fonction SQL "exists" sous access
    Par Mut dans le forum Requêtes et SQL.
    Réponses: 23
    Dernier message: 18/08/2011, 14h49
  2. LE to_char en SQL, existe !?
    Par Paradisma dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 08/10/2010, 22h52
  3. [T-SQL] Existence d'une "instruction nulle" ?
    Par dj_lil dans le forum Développement
    Réponses: 2
    Dernier message: 25/03/2009, 13h52
  4. [T-SQL] existe-t-il un équivalent à EXIT ?
    Par Oluha dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 06/05/2005, 13h52
  5. [SQL - ASP] existance d'une table
    Par Larson dans le forum ASP
    Réponses: 4
    Dernier message: 02/06/2004, 10h41

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