Faire un SELECT sur plusieurs tables

Résolu/Fermé
Geopra Messages postés 187 Date d'inscription mercredi 16 septembre 2015 Statut Membre Dernière intervention 7 juin 2017 - 6 juin 2017 à 17:26
Geopra Messages postés 187 Date d'inscription mercredi 16 septembre 2015 Statut Membre Dernière intervention 7 juin 2017 - 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 : https://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 ! :)

1 réponse

jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
6 juin 2017 à 17:34
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 ??




0
Geopra Messages postés 187 Date d'inscription mercredi 16 septembre 2015 Statut Membre Dernière intervention 7 juin 2017 3
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
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717 > Geopra Messages postés 187 Date d'inscription mercredi 16 septembre 2015 Statut Membre Dernière intervention 7 juin 2017
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 *
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717 > jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024
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
0
Geopra Messages postés 187 Date d'inscription mercredi 16 septembre 2015 Statut Membre Dernière intervention 7 juin 2017 3
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)
0