Menu

Faire un SELECT sur plusieurs tables [Résolu]

Geopra 187 Messages postés mercredi 16 septembre 2015Date d'inscription 7 juin 2017 Dernière intervention - 6 juin 2017 à 17:26 - Dernière réponse : Geopra 187 Messages postés mercredi 16 septembre 2015Date d'inscription 7 juin 2017 Dernière intervention
- 7 juin 2017 à 11:21
Bonjour,

Je cherche à faire un SELECT sur plusieurs tables, dans une même BDD.
Du genre : ("SELECT * FROM [ma bdd] WHERE id = ?");
le soucis est que je ne sais pas comment faire, car après le FROM, en principe, on met le nom des tables, et pas de la bdd... d'autant plus que ma base contient un vingtaine de tables, et que j'ai pas envie à chaque fois de mettre les 20 noms des tables dans la requête...

Je suis tombé sur ce site : http://sqlpro.developpez.com/cours/sqlaz/jointures/ sauf que c'est hyper mal expliqué (ou alors je comprend rien du tout^^)

merci d'avance pour votre aide ! :)

Afficher la suite 

Votre réponse

5 réponses

jordane45 21166 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 24 mai 2018 Dernière intervention - 6 juin 2017 à 17:34
0
Utile
Bonjour,

Tu dis :

Je cherche à faire un SELECT sur plusieurs tables, dans une même BDD.


Sur "plusieurs" ou sur TOUTES les tables de ta bdd ???

Ensuite... est-ce que tes tables ont la même structure ???

Car .. non ! il n'existe pas de commande magique pour faire ce que tu veux.... et oui.. va surement falloir utiliser des JOINTURES.

Quoi qu'il en soit ... sans connaitre la structure de tes tables et ce que tu souhaites réellement obtenir... il nous sera difficile de te répondre.


Et pour finir ... ta question semble donc concerner le "requêtage" dans une BDD ( donc des requêtes sql....) ... il aurait donc été plus judicieux de poster dans le forum Bases de données non ??




Geopra 187 Messages postés mercredi 16 septembre 2015Date d'inscription 7 juin 2017 Dernière intervention - 6 juin 2017 à 17:35
Bonsoir, merci de votre réponse, je souhaite faire un SELECT de toutes mes tables, dans une seule BDD, et qui ont toutes la même structure en effet.

Et pour le forum, je me suis planté en effet :D
jordane45 21166 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 24 mai 2018 Dernière intervention > Geopra 187 Messages postés mercredi 16 septembre 2015Date d'inscription 7 juin 2017 Dernière intervention - 6 juin 2017 à 17:43
Si tes tables ont la même structure ( c'est étrange au passage....il semblerait que tu aies un souci de conception pour en être arrivé là... ) ... il te faudra en effet faire un
SELECT *
FROM tatable1, tatable2, tatable3 ....


Tu peux aussi utiliser des UNION
SELECT *
FROM tatable1

UNION

SELECT *
FROM tatable2

UNION

SELECT *
FROM tatable3


etc...



Et si vraiment tu ne veux pas avoir à écrire le nom de toutes tes tables....
Tu peux toujours te créer une procédure stockée qui
1 - Liste le nom de tes tables
2 - Boucle sur cette liste pour faire le SELECT *
jordane45 21166 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 24 mai 2018 Dernière intervention > jordane45 21166 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 24 mai 2018 Dernière intervention - 6 juin 2017 à 17:45
par contre .. tu ne nous as pas indiqué quel SGBD tu utilises ....
Cela pourrait peut-être changer la réponse en fonction;

NB: J'ai déplacé ta question dans le forum BDD
Geopra 187 Messages postés mercredi 16 septembre 2015Date d'inscription 7 juin 2017 Dernière intervention - 7 juin 2017 à 11:21
Bonjour, merci de votre aide, ça fonctionne ! ;)

Pour la structure, en fait, ce sont des chats, ayant la même structure, mais pas la même utilité, donc pour faciliter la modération, ils sont séparés sur plusieurs tables (une pour chaque chat)
Commenter la réponse de jordane45