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

Requêtes MySQL Discussion :

Req pour trouver la designation d'une clé étrangère qui peut se trouver soit dans une table ou dans l'autre


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club Avatar de creytas
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

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

    Informations forums :
    Inscription : Avril 2014
    Messages : 5
    Par défaut Req pour trouver la designation d'une clé étrangère qui peut se trouver soit dans une table ou dans l'autre
    voici comment se présente les tables dont je veux extraire les données

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    TABLE OPERATION (num_operation int(3), user_operation int(1), date_operation datetime, operation int(1), motif_operation int(2), departement_operation int(2), bien_vendu_operation int(1), devise_operation char(3), montant_operation int(11))
     
    TABLE TYPE OPERATION (type_operation int(1), designation_operation varchar(25)) -- 1 ENTREE et 2 SORTIE
     
    TABLE MOTIF ENTREE (motif_entree int(2), designation_entree varchar(25))
     
    TABLE MOTIF SORTIE (motif_sortie int(2), designation_sortie varchar(25))
    Je voudrai récupérer la designation lié motif_operation ; designation qui peut se trouver soit dans la TABLE MOTIF ENTREE ou soit dans la TABLE MOTIF SORTIE selon que la valeur du champ 'operation' est de TYPE OPERATION soit ENTREE ou SORTIE
    J'ai essayé ceci mais ça n'a pas marché et je me sens un peu perdu.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT DISTINCT designation_sortie OR designation_entrée
    FROM tab_operation O, tab_motif_sortie MS, tab_motif_entree ME
    WHERE O.motif_operation=
    	CASE 
    		WHEN O.operation=1 THEN (SELECT tab_motif_sortie.motif_sortie)
            ELSE (SELECT tab_motif_entree.motif_sortie)
        END;
    Étant nouveau dans le domaine de MySQL je suis un peu perdu. besoin de votre aide please.

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 633
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 633
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Ceci devrait convenir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT coalesce(designation_sortie, designation_entrée) as designation
    FROM tab_operation OP
    left outer join tab_motif_sortie MS
      on MS.motif_sortie = OP.motif_operation 
    left outer join tab_motif_entree ME
      on ME.motif_sortie = OP.motif_operation

Discussions similaires

  1. Req pour lister les index d'une table ?
    Par nanou9999 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 04/05/2009, 11h08
  2. Problème pour lire les donnée d'une table externe
    Par mardoch dans le forum SQL*Loader
    Réponses: 6
    Dernier message: 17/07/2008, 16h41
  3. Req pour lister les vues d'une base ?
    Par nanou9999 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 05/07/2006, 08h12
  4. Réponses: 2
    Dernier message: 20/09/2005, 15h10
  5. Encore une question, pour retrouver 2 valeur d'une table
    Par danje dans le forum Langage SQL
    Réponses: 5
    Dernier message: 15/09/2005, 00h11

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