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 :

Requete sur plusieurs tables contenant les mêmes champs


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 48
    Points : 30
    Points
    30
    Par défaut Requete sur plusieurs tables contenant les mêmes champs
    Bonsoir,

    J'ai une question concernant une requête SQL, la voici donc :

    J'ai 15 tables contenant des données différentes (30 champs pour chaque table environ), sauf quelques champs qui sont pareils. J'aimerais faire une requête sur les 15 tables en même temps, et pouvoir sélectionner quelques champs qui sont nommés dans toutes les tables la même chose.
    Par exemple le champ "titre" de toutes les tables.

    J'ai trouvé en fait une solution qui est celle-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT titre, id_membres, tel, fax, date, duree
    FROM a_sports
    WHERE id_membres = '42'
    UNION SELECT titre, id_membres, tel, fax, date, duree
    FROM a_peches
    WHERE id_membres = '42'
    UNION SELECT titre, id_membres, tel, fax, date, duree
    FROM a_restaurants
    WHERE id_membres = '42'
    Je fait donc une sélection des mêmes données pour chaque table. Cependant, comme la je le montre avec seulement 3 tables et qu'il y en aura au final 15, qu'elles seront énormément pleines, et que beaucoup d'utilisateurs feront des requêtes en même temps, je me pose une simple question, si cela sera assez rapide, ou s'il serait mieux de sélectionner simplement les 30 champs des 15 tables comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM a_peches, a_restaurants, a_sports
    WHERE id_membres = '42'
    C'est peut être une question un peu bête puisque l'exécution des requêtes est super rapide, mais à grande échelle je sais pas ce que cela peux donner...

    J'ai également une question supplémentaire :
    Est-il possible de pouvoir récupérer le nom d'une table avec une requête ?

    Voila c'est tout... Si vous avez des conseils pour faire mes requêtes plus simplement n'hésitez pas je ne suis que débutant !

    Bonne soirée et merci d'avance

  2. #2
    Membre éclairé Avatar de grabriel
    Inscrit en
    Septembre 2006
    Messages
    946
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 946
    Points : 730
    Points
    730
    Par défaut
    Salut,

    Si tu fais un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT a_sports.titre, a_sports.id_membres, a_sports.tel, a_sports.fax, a_sports.date, a_sports.duree,a_peches.titre, a_peches.id_membres, a_peches.tel, a_peches.fax, a_peches.date, a_peches.duree, a_restaurants.titre, a_restaurants.id_membres, a_restaurants.tel, a_restaurants.fax, a_restaurants.date, a_restaurants.duree
    FROM a_sports,a_peches,a_restaurants
    WHERE a_peches.id_membres = '42' and a_sports.id_membres = '42' and a_restaurants.id_membres = '42'
    [EDIT]
    je ne suis que débutant !
    Si t'es débutant est-ce que c'est toi qui a créer les tables si oui est ce que tu pourrais penser qu'elle ne sont pas bien faite pour ce que tu demandes.
    Si tu te poses des questions sur la qualité de la conception de ta base soumet un MCD sur le forum de conception on (je parle de gens compétents dans ce domaine pas de moi en particulier ) t'aidera à l'améliorer.
    [/EDIT]

  3. #3
    Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    ou encore plus light :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT s.titre, s.id_membres, s.tel, s.fax, s.date, s.duree,p.titre, p.id_membres, p.tel, p.fax, p.date, p.duree, r.titre, r.id_membres, r.tel, r.fax, r.date, r.duree
    FROM a_sports s,a_peches p,a_restaurants r
    WHERE p.id_membres = '42' AND s.id_membres = '42' AND r.id_membres = '42'

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 48
    Points : 30
    Points
    30
    Par défaut
    Merci pour vos réponses, j'ai testé tout cela est ça me semble concluant
    Le problème est donc résolu, merci encore !

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

Discussions similaires

  1. Requete sur plusieurs table avec les memes champs
    Par broule dans le forum Langage SQL
    Réponses: 4
    Dernier message: 05/02/2010, 19h57
  2. Probleme de requete sur plusieurs tables
    Par Hitmaaan dans le forum Requêtes
    Réponses: 3
    Dernier message: 20/08/2006, 22h20
  3. [vb6]faire une requete sur plusieurs tables
    Par Henry9 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 23/07/2006, 02h06
  4. requete sur 2 tables liées avec même nom de champs
    Par Australia dans le forum Access
    Réponses: 5
    Dernier message: 02/02/2006, 11h38
  5. requete sur plusieurs tables
    Par manaboko dans le forum Requêtes
    Réponses: 6
    Dernier message: 13/12/2005, 17h07

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