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 :

Jointure de table SQL


Sujet :

SQL Oracle

  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 10
    Points : 2
    Points
    2
    Par défaut Jointure de table SQL
    Bonjour,


    J'ai 2 tables cli1 (client et adresse principale) et cli2 (adresse secondaires d'un client) et chaque enregistrement de cli2 est lié à 1 enregistrement de cli1.

    J'ai en gros une requête comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select * from cli1, outer cli2
     where cli2.id = cli1.id
     order by cli2.adr
    Cette requête me retourne :
    - soit 1 seule ligne avec les données du client principal s'il n'y a pas d'adresse secondaire,
    - soit autant de lignes que d'adresses secondaires.

    Or je voudrais que ma requête me retourne :
    - ET la ligne d'adresse principale (infos de cli1 sans enregistrement de cli2 associé)
    - ET les lignes d'adresse secondaires.



    En résumé, si j'ai un client AAA sans adresse secondaire, ça me retourne :
    AAA

    Si mon client AAA a 3 adresses 01 02 et 03, j'ai comme résultat :
    AAA 01
    AAA 02
    AAA 03

    et moi je voudrais
    AAA
    AAA 01
    AAA 02
    AAA 03


    Comment faire svp ?

  2. #2
    Membre averti Avatar de icsor
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2008
    Messages
    258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2008
    Messages : 258
    Points : 436
    Points
    436
    Par défaut
    Bonjour,

    comme je n'ai rien compris à la description, je vais essayer de vous aider en regardant uniquement votre résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select * from cli1 INNER JOIN cli2
    ON cli2.id = cli1.id
    UNION ALL
    select * from cli1
    Libre à vous de remettre des order by pour présenter le résultat dans l'ordre que vous soouhaitez.

    Après, je dirai qu'il y a un problème dans la modélisation de votre base, la table cli2 (adresse) devrait contenir toutes les adresses et la table cli1 uniquement les infos clientes (après, je sais que ce n'est pas toujours de développeur qui choisit)

  3. #3
    Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Ca aurait en effet été plus simple mais le modèle est ainsi et on n'y peut rien.

    En fait au final c'est pour afficher un tableau de visualisation des données. Finalement on m'a proposé de générer une ligne d'adresse principal dans mon tableau à l'intérieur de la boucle déjà existante à chaque rupture de cli1.id ... Ca ne sera donc pas traité par la requête SQL mais dans le programme.


    Merci quand même pour l'aide, au moins j'ai appris qu'il existait le mot-clé UNION

Discussions similaires

  1. [SQL] Jointure de table avec SUM et GROUP BY
    Par waterjetmedia dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 20/09/2007, 13h17
  2. [SQL] Forcer l'affichage d'une table SQL malgrès des collones (jointure) vide
    Par arnaudperfect dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 19/04/2007, 10h18
  3. [SQL]Problème avec jointure de tables
    Par benjisan dans le forum Requêtes et SQL.
    Réponses: 16
    Dernier message: 29/03/2007, 20h43
  4. [SQL] SELECT jointure 7 Tables
    Par php4life dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 29/01/2007, 09h38
  5. Requete SQL jointure plusieurs tables
    Par bibicha dans le forum Langage SQL
    Réponses: 1
    Dernier message: 31/08/2006, 17h38

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