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 :

Jointure et divers


Sujet :

Langage SQL

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Jointure et divers
    Bonsoir tout le monde !

    Je viens à vous car malgré toutes mes tentatives je ne trouve aucune solution à plusieurs de mes problèmes ;

    D'abord le plus important :

    Prenons le cas simplifié de deux table :
    Table_A avec un champ ID_A, ainsi qu'une dizaines de champs mineurs informatifs.
    Table_B avec un champ ID_B, un champs Ordre et un champs Coll.

    Mon but est de récupérer toutes les lignes de A pour ID_A = ID_B (une jointure lambda suffit), mais également celles où il n'y a pas de correspondance avec ID_B.

    Exemple :
    Table A :
    ID_A -
    1 -
    2 -
    3 -
    4 -

    Table B
    ID_B - Ordre - Coll
    1 - A - 2
    2 - C - 4
    4 - D - 4

    Pouvoir récupérer en plus des trois lignes de la table B la troisième entrée de la A, le plus simplement et surtout le plus efficacement possible.


    Pour les autres soucis, d'abord je souhaite régler celui ci avant de m'attaquer aux autres.

    Merci d'avance

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 262
    Points : 12 936
    Points
    12 936
    Par défaut
    Bonjour,
    Il faut utiliser une jointure externe.

    Tatayo.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Re, c'est Blancos, mon autre compte impossible de m'y reconnecter...

    Merci pour la réponse ; mais j'avais déjà essayé une jointure externe : rien à faire. Je pense que ça vient du fait qu'il me faut impérativement un 'WHERE' sur un des champ de la table B. Je n'ai trouvé aucune alternative à ce problème...

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 262
    Points : 12 936
    Points
    12 936
    Par défaut
    C'est pourtant bien une jointure externe qu'il faut utiliser.
    Mais dans ce cas, la restriction sur la table de droite doit se trouver dans la jointure, et non dans la clause where. Dans le cas contraire ça revient à faire une jointure interne.
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select *
    from t1
    left outer join t2 on t1.id = t2.idt1 and t2.colx = 'xxx'
    where t1.coly = 'xyz'

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Re ;


    Merci pour la réponse !

    J'ai tenté cette requête : ça me fait comme une jointure interne.
    J'ai tenté en modifiant d'autres conditions pour tester ; ma requête "is interrupted".

    Il y a vraiment quelque chose qui m'échappe. Auriez-vous quelques minutes svp pour que je vous détaille plus précisément les circonstances de mon problème ? Mon skype : minnowien

    Cordialement ;

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 262
    Points : 12 936
    Points
    12 936
    Par défaut
    Je préfère continuer sur ce forum. Si quelqu'un d'autre a un problème similaire, ça peut l'aider aussi...

    Est-ce qu'on peut voir la requête qui pose problème ?

    Tatayo.

Discussions similaires

  1. Jointure qui ne renvoie pas tous les enregistrements
    Par rayonx dans le forum Langage SQL
    Réponses: 12
    Dernier message: 19/07/2024, 09h33
  2. [LG]Divers problémes pour un programme.
    Par Horus TCT dans le forum Langage
    Réponses: 14
    Dernier message: 24/05/2003, 23h04
  3. Réponses: 14
    Dernier message: 17/03/2003, 18h31
  4. Jointures INNER et jointures classiques ???
    Par UbiK dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/09/2002, 10h29
  5. Divers questions
    Par Freakazoid dans le forum DirectX
    Réponses: 2
    Dernier message: 06/08/2002, 21h57

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