Intérroger +sieurs tables (nombre variable)
Fermé
gismin
Messages postés
22
Date d'inscription
samedi 6 juillet 2013
Statut
Membre
Dernière intervention
10 août 2023
-
27 mars 2015 à 19:10
jee pee Messages postés 41024 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 7 avril 2025 - 28 mars 2015 à 10:09
jee pee Messages postés 41024 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 7 avril 2025 - 28 mars 2015 à 10:09
Bonjour,
$tables= 'table1,table2 ...' : le nombre peut varier.
'SELECT nom, mail FROM' .$tables ou 'SELECT * FROM' .$tables
ne marche pas. Les tables sont toutes semblables (par ex nom et mail dans toutes).
Quelle la bonne syntaxe si c possible?
Merci
$tables= 'table1,table2 ...' : le nombre peut varier.
'SELECT nom, mail FROM' .$tables ou 'SELECT * FROM' .$tables
ne marche pas. Les tables sont toutes semblables (par ex nom et mail dans toutes).
Quelle la bonne syntaxe si c possible?
Merci
A voir également:
- Intérroger +sieurs tables (nombre variable)
- Tables des matières word - Guide
- Nombre facile - Télécharger - Outils professionnels
- Nombre de jours entre deux dates excel - Guide
- Ascii nombre de caractères - Guide
3 réponses
jee pee
Messages postés
41024
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
7 avril 2025
9 579
27 mars 2015 à 19:31
27 mars 2015 à 19:31
Bonjour,
Il faut retravailler les cours de sql ;-))
Et si cela marchait, il y aurait un produit cartésien des réponses. Si 10 enregistrements dans T1 et 5 dans T2 ==> réponse = 50 lignes.
La syntaxe simple c'est
Il faut retravailler les cours de sql ;-))
select nom, mail from T1,T2ne doit pas marcher car c'est ambigu si les champs de mêmes noms existent dans le 2 tables. Il faut préfixer les champs par le nom de table.
Et si cela marchait, il y aurait un produit cartésien des réponses. Si 10 enregistrements dans T1 et 5 dans T2 ==> réponse = 50 lignes.
La syntaxe simple c'est
select nom, mail from T1 union select nom, mail from T2
gismin
Messages postés
22
Date d'inscription
samedi 6 juillet 2013
Statut
Membre
Dernière intervention
10 août 2023
2
27 mars 2015 à 21:43
27 mars 2015 à 21:43
je suis un peu imbécile et aime bien les réponses très explicites.
Par ex. 50 lignes moi pas comprendre. Pour moi à priori c'est 10+5.
Dans ma question je précise que $tables n'est pas défini , ça peut contenir 2 tables comme 10 . Et des tables différentes:
$tables='table22,table1,table80' ou ='table6,table2'
Donc si c pas possible d'interroger en 1 ligne et s'il faut faire une boucle après avoir défini le nombre de tables et leur valeur ... donc du code du code ...
ou tout rentrer dans une grosse table ... ce qui ne m'inspirait pas à cause du volume voir de la sécurité et peut être du temps de recherche (?).
Par ex. 50 lignes moi pas comprendre. Pour moi à priori c'est 10+5.
Dans ma question je précise que $tables n'est pas défini , ça peut contenir 2 tables comme 10 . Et des tables différentes:
$tables='table22,table1,table80' ou ='table6,table2'
Donc si c pas possible d'interroger en 1 ligne et s'il faut faire une boucle après avoir défini le nombre de tables et leur valeur ... donc du code du code ...
ou tout rentrer dans une grosse table ... ce qui ne m'inspirait pas à cause du volume voir de la sécurité et peut être du temps de recherche (?).
jee pee
Messages postés
41024
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
7 avril 2025
9 579
Modifié par jee pee le 28/03/2015 à 10:10
Modifié par jee pee le 28/03/2015 à 10:10
Non c'est 10 X 5. Le select sans restriction donne le produit des 2 tables. Pour avoir 15 lignes c'est l'union telle que dans mon select plus haut.
Et je pense en lisant ta dernière remarque que effectivement tu as un problème de conception de la base de données.
On ne crée pas une table chaque jour pour enregistrer, par exemple, des connexions du jour à un site. Il n'y a qu'une seule table avec toutes les connexions.
Un jour j'ai vu une table dans une base qui faisait 192 GO et des centaines de millions de lignes.
Un étranger, c'est un ami qu'on n'a pas encore rencontré.
Et je pense en lisant ta dernière remarque que effectivement tu as un problème de conception de la base de données.
On ne crée pas une table chaque jour pour enregistrer, par exemple, des connexions du jour à un site. Il n'y a qu'une seule table avec toutes les connexions.
Un jour j'ai vu une table dans une base qui faisait 192 GO et des centaines de millions de lignes.
Un étranger, c'est un ami qu'on n'a pas encore rencontré.