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 :

Peut on utiliser OR avec des jointures de tables??


Sujet :

Langage SQL

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Peut on utiliser OR avec des jointures de tables??
    Bonjour

    Je voulais savoir, si il était possible d'utiliser l'opérateur OR, en utilisant des jointures entre tables.

    SELECT centre_Nom, formation_Nom
    FROM tampon, formation, centre
    WHERE formation.formation_ID=tampon.formation_ID
    AND centre.centre_ID = tampon.centre_ID
    AND tampon.centre_ID = 1
    OR tampon.centre_ID = 2

    J'ai essayé cette requette , qui joint les tables "formation", et "centre" avec la table "tampon"(qui contient les clés etrangeres), et je veux donc garder, que les centres qui ont comme ID 1, ou 2.

    Et le résultat de cette requette ne m'affiche pas du tout le résultat attendu, et je suis sur que c'est a cause du OR, on dirait qu'il va chercher tous les enregistrements de chaque tables selectionnées.

    Est ce que quelqun pourrait m'éclairer à ce sujet, ou me donner une autre solution que le OR.
    Merci

  2. #2
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Bonjour,

    Tu peux utiliser des parenthéses
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    where x = x1
    and (y = y1 or y2 = y3)
    Mais il me semble que tu mélange jointures et restrictions,
    j'aurais plutôt écrit qquechose comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT centre_Nom, formation_Nom 
    FROM tampon 
    inner join formation 
    ON formation.formation_ID=tampon.formation_ID 
    inner join centre 
    ON centre.centre_ID = tampon.centre_ID 
    WHERE  tampon.centre_ID in (1,2);
    (mais ce n'est qu'1 remarque ;-) )

    A +

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Tu devrais lire l'article de SQLpro sur les jointures externes et notamment l'exemple où il ajoute des conditions dans la jointure.
    Tu devrais comprendre pourquoi tu n'obtiens pas les résultats attendus.

    Si tu veux + de réponses, dans tous les cas, donne + d'explications sur ton contexte.
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/03/2010, 19h05
  2. Impossible d'utiliser DISTINCT avec des types image et ntext
    Par azlinch dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 17/08/2005, 17h43
  3. Utiliser MySqlAdmin avec des droits utilisateurs sur XP
    Par thorgal85 dans le forum Outils
    Réponses: 2
    Dernier message: 18/03/2005, 12h19
  4. Réponses: 6
    Dernier message: 24/02/2005, 09h44

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