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

SQL Oracle Discussion :

Sorte de jointure externe avec un IN


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Profil pro
    MOA
    Inscrit en
    Décembre 2002
    Messages
    1 220
    Détails du profil
    Informations personnelles :
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : MOA

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 220
    Par défaut Sorte de jointure externe avec un IN
    Bonjour,


    J'ai une table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    create table dim (
         id number
         lib varchar2(10)
    );
    insert into dim (1, 'societe');
    insert into dim (2, 'entite');
    Je souhaiterais toutes les dimension en fonction d'un id et si l'id n'est pas présent, le lib est à null.

    Dans mon exemple, j'aimerais lister les id 1, 2 et 8.

    si je fais un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from dim where id in (1,2,8);
    cela me retourne 2 lignes, or j'aimerais que cela me retourne 3 lignes (en fait un peu comme une jointure externe)

    Comment puis je faire ?

  2. #2
    Membre chevronné Avatar de miloux32
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    545
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 545
    Par défaut
    Pas possible avec un in ....


    Comment tu détermines tes valeurs à afficher ?


    Au pire tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT * FROM dim a , (select 1 as id from dual
    union
    select 2 as id from dual
    union 
    select 8 as id from dual) b WHERE a.id=b.id(+)
    Mais c'est assez moche et difficile à faire moduler ....

    (apres suivant ta version d'oracle il y a sans doute 'achement plus simple)

  3. #3
    Membre éprouvé

    Profil pro
    MOA
    Inscrit en
    Décembre 2002
    Messages
    1 220
    Détails du profil
    Informations personnelles :
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : MOA

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 220
    Par défaut
    c'est une variable PHP contenant une chaine de caratères avec des identifiants séparés par des virgules.


    oui l'idée serait alors dans une procédure stockées
    1./ de transformer ma chaine de caractères en un tableau
    2./ via le tableau nouvellement construit dynamiquement la partir :

    SELECT 1 AS id FROM dual
    union
    SELECT 2 AS id FROM dual
    union
    SELECT 8 AS id FROM dual

  4. #4
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Cherchez split sur le forum cella montre comment transformer ta variable In dans une table.
    Ensuite fait un Outer Join entre ta table et la table sortant du split.

Discussions similaires

  1. Jointure externe avec constante
    Par magic charly dans le forum SQL
    Réponses: 2
    Dernier message: 02/05/2007, 10h37
  2. Jointure externe avec prédicat dans la clause de jointure
    Par aflp91 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 08/12/2006, 00h23
  3. Pb de jointure externe avec un number
    Par mch_27 dans le forum Oracle
    Réponses: 2
    Dernier message: 07/03/2006, 15h33
  4. [SQL] jointure externe avec 3 tables, comment faire ....
    Par grumbok dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/08/2005, 16h13
  5. jointure externe avec un where, me pose problème!
    Par Danae dans le forum Langage SQL
    Réponses: 3
    Dernier message: 18/07/2005, 17h37

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