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 :

Recherche en fonction de paramètre


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 13
    Points : 10
    Points
    10
    Par défaut Recherche en fonction de paramètre
    Bonjours,
    Je dispose de 3 tables.
    A : id
    B : id_a, id_c
    C : id

    J'aimerais faire une requête qui permet de choisir les lignes de la table A qui ont une relation avec les id de la table C passé en paramètre.

    Quel est la meilleure solution pour réaliser ceci (avec un exemple, ça serait sympa)

    Merci de votre réponse.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 109
    Points : 28 437
    Points
    28 437
    Par défaut
    S'il te suffit de connaître la liste des identifiants de la table A en relation avec les éléments de la table C passés en paramètre, il suffit d'une simple sélection sur la table B :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT id_a
    FROM b
    WHERE id_c IN (liste)
    GROUP BY id_a
    Si tu as besoin d'attributs de la table A, il faudra une sélection par requête corrélée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     SELECT a.*
    FROM a
    WHERE exists (SELECT 1
    FROM c
    WHERE a.id = c.id_a
    AND c.id_c IN (liste)
    )
    ou :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     SELECT a.*
    FROM a
    WHERE a.id IN (SELECT id_a
    FROM c
    WHERE c.id_c IN (liste)
    )

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Merci, c'est exactement ce que je cherchais


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

Discussions similaires

  1. Recherche des enregistrements en fonction des paramètres
    Par infoctet dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 10/01/2007, 09h51
  2. Réponses: 4
    Dernier message: 11/09/2005, 01h21
  3. Création d'une fonction sans paramètre?
    Par falcon dans le forum Oracle
    Réponses: 3
    Dernier message: 13/12/2004, 11h32
  4. [Conception] Passer une fonction en paramètre
    Par pejay dans le forum Langage
    Réponses: 9
    Dernier message: 09/12/2004, 13h58
  5. Réponses: 3
    Dernier message: 17/06/2004, 16h32

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