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 :

comment vérifier qu'une table esclave vérifie une condition?


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 8
    Par défaut comment vérifier qu'une table esclave vérifie une condition?
    Salut,

    - Je possède une table maître (M) et une table esclave(S) tel que
    M --1-------*--S
    - Je sélectionne certains tuples dans M.
    "SELECT .... FROM M ....."

    Je voudrais que le résultat de ma requête contienne un champ qui serait soit:
    - NULL si... AUCUN des tuples de S associés à M ne vérient UNE CONDITION
    (- autre chose aussinon)

    Je possède déjà une solution à ce problème qui consite à faire une UNION entre 2 SELECT du type...
    SELECT ... FROM M .....
    UNION
    SELECT ....FROM M, S... (identique à la première)
    INNER JOINT...
    WHERE S (condition)

    Mais je trouve cette solution peu élégante (voir exécrable), quelqun peut-il m'aider ou me donner quelques pistes ?

    Merci.

  2. #2
    Membre éprouvé Avatar de Kimael
    Inscrit en
    Avril 2002
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 151
    Par défaut
    Le LEFT JOIN est ton ami

    Exemple, pour avoir les adultes qui sont parents d'au moins un enfant et qui ont strictement moins de 20 ans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT a.nom FROM adultes a LEFT JOIN enfants e ON (e.id_parent = a.id_adulte) WHERE (a.age < 20);

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 8
    Par défaut
    Merci Kimael,
    J'avais presque oublié l'inret des jointures à gauche et à droite.

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

Discussions similaires

  1. Comment "copier" des enregistrements d'une table A vers une table B ?
    Par SafidyVaovao dans le forum Bases de données
    Réponses: 14
    Dernier message: 09/03/2015, 16h40
  2. Réponses: 3
    Dernier message: 20/12/2006, 17h59
  3. cle_primaire d'une table = cle_primaire d'une table secondaire
    Par Mihalis dans le forum Bases de données
    Réponses: 5
    Dernier message: 20/09/2006, 22h49
  4. Réponses: 6
    Dernier message: 16/06/2006, 13h22
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

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