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 :

select sur plusieurs table sans jointure


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5
    Points : 7
    Points
    7
    Par défaut select sur plusieurs table sans jointure
    Bonjour,

    Je cherche a faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select distinct id FROM table1, table2,table3 WHERE champ=1
    En gros, trouver tous les id uniques de 3 table.... (chaque table a bien un id nommé "id" et un champ nommé "champ")

    Simple non? Ben, je n'y arrive pas :/

    Merci d'avance !

  2. #2
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    select distinct id FROM table1, table2,table3 WHERE champ=1
    Il s'agit là d'un produit cartésien entre trois tables, ton résultat aura donc nombre de lignes de table1 * nombre de lignes de table2 * nombre de lignes de table3 lignes et les colonnes table1.id, table1.champ, table2.id, table2.champ, table3.id, table3.champ.

    Si je comprends bien ce que tu veux réaliser est plutôt une concaténation de 3 tables. Il faut passer une UNION, et même une UNION ALL si tu veux éviter les doublons entre plusieurs tables.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT DISTINCT id FROM table1 WHERE champ = 1
    UNION ALL
    SELECT DISTINCT id FROM table2 WHERE champ = 1
    UNION ALL
    SELECT DISTINCT id FROM table3 WHERE champ = 1
    Est-ce que le résultat de cette requête est celui que tu attends?

    Chris Vargas

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5
    Points : 7
    Points
    7
    Par défaut re
    Merci Chris,

    C'est tout à fait cela.

    Sauf que j'ai encore des doublons.

    Avec le "Union" tu n'auras que les valeurs distinctes de tes 2 tables alors qu'avec union all tu auras toutes les valeurs de tes 2 tables.

    Merci pour ton aide !!

  4. #4
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    Oups! J'ai totalement inversé le rôle d'UNION et d'UNION ALL... Mais voilà c'est parfait.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. select sur plusieurs tables
    Par julien.63 dans le forum Requêtes
    Réponses: 6
    Dernier message: 16/05/2006, 17h29
  2. [SQL Access] SELECT sur plusieurs Tables et Composer Champs
    Par Giuseppe dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 07/11/2005, 14h00
  3. SELECT sur plusieurs Tables et Composer Champs
    Par Giuseppe dans le forum Langage SQL
    Réponses: 4
    Dernier message: 07/11/2005, 12h27
  4. un seul SELECT sur plusieurs tables ?
    Par deloo dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/09/2005, 12h57
  5. select sur plusieurs table, question sur jointure
    Par Schulman dans le forum Langage SQL
    Réponses: 7
    Dernier message: 03/09/2004, 13h54

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