Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1747 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  PROBLEME REQUETE: SELECT nom FROM (plusieur table)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PROBLEME REQUETE: SELECT nom FROM (plusieur table)

n°1003470
Madi
Posté le 07-03-2005 à 12:13:39  profilanswer
 

Salut,
 
Bah o faite j'ai un probleme avec une requete de selection g des table qui ont tous lé meme champs et je voudrais afficher le champs nom de toutes ces tables alors je fait donc parexemple: SELECT nom FROM sport, séniors,....(tte lé table)
 
G une erreur:
Erreur
 
requête SQL :  
 
SELECT NOM FROM `sport`, séniors LIMIT 0, 30
 
MySQL a répondu:
 
 
Champ: 'NOM' dans field list est ambigu
 
je sais pas pourquoi si quelqu'un pourrait m'aider?
 
Merci d'avance

mood
Publicité
Posté le 07-03-2005 à 12:13:39  profilanswer
 

n°1003473
skeye
Posté le 07-03-2005 à 12:17:14  profilanswer
 

select nom from sport
union
select nom from seniors
union
select nom from machin
...
 
Mais ça me parait douteux, tout ça...[:urd]


Message édité par skeye le 07-03-2005 à 12:17:29

---------------
Can't buy what I want because it's free -
n°1003494
Arjuna
Aircraft Ident.: F-MBSD
Posté le 07-03-2005 à 12:32:11  profilanswer
 

+1

n°1003501
KangOl
Profil : pointeur
Posté le 07-03-2005 à 12:35:37  profilanswer
 

et evite les accents dans les noms de tables...


---------------
Nos estans firs di nosse pitite patreye...
n°1003863
Madi
Posté le 07-03-2005 à 18:18:57  profilanswer
 

G essayer avec les UNION mais sa marche tjs pas sa me donne sa:
Erreur
 
requête SQL :  
 
SELECT nom FROM action_sociale
UNION
SELECT nom FROM anciens_combattants LIMIT 0, 30
 
MySQL a répondu:
 
 
Something is wrong in your syntax près de 'UNION
SELECT nom FROM anciens_combattants LIMIT 0, 30' à la ligne 2

n°1003881
KangOl
Profil : pointeur
Posté le 07-03-2005 à 18:58:15  profilanswer
 

quel version de mysql ?


---------------
Nos estans firs di nosse pitite patreye...
n°1003911
Madi
Posté le 07-03-2005 à 19:16:39  profilanswer
 

Moi G easyphp 6.0 é la version de Mysql se doit être celle-ci:MySQL 3.23.49-max.
 
Si quelqu'un pourrait m'aider pour cette requête se serait sympa.

n°1003922
skeye
Posté le 07-03-2005 à 19:24:38  profilanswer
 

Madi a écrit :

Moi G easyphp 6.0 é la version de Mysql se doit être celle-ci:MySQL 3.23.49-max.
 
Si quelqu'un pourrait m'aider pour cette requête se serait sympa.


version de mysql périmée, tu y arriveras aps en une seule requête.


---------------
Can't buy what I want because it's free -
n°1003924
Madi
Posté le 07-03-2005 à 19:26:02  profilanswer
 

A wé sérieu sa veut dire qu'il faut que je télécharge easyphp 7.0 pour reussir un tel requête?

n°1003926
skeye
Posté le 07-03-2005 à 19:27:57  profilanswer
 

Madi a écrit :

A wé sérieu sa veut dire qu'il faut que je télécharge easyphp 7.0 pour reussir un tel requête?


non, ça veut dire que mysql avant sa version 4.1 ne gère pas les requêtes imbriquées.
Quand à easyphp je connais pas, je sais pas quelle version ils filent avec, mais c'ets nettement mieux detout installer à la main...:o


---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le 07-03-2005 à 19:27:57  profilanswer
 

n°1003927
Madi
Posté le 07-03-2005 à 19:30:33  profilanswer
 

a ok jvoi le truc est tu saurais pas ou jpe télécharger cette version stp?

n°1003928
Madi
Posté le 07-03-2005 à 19:32:17  profilanswer
 

C bon Jlai trouvé merci ;-)

n°1003977
Arjuna
Aircraft Ident.: F-MBSD
Posté le 07-03-2005 à 19:59:21  profilanswer
 

J'aime bien le franglais du message d'erreur :D
 
PS: skeye, un UNION, c'est pas une requête imbriquée, mais en effet, MySQL ne le supportait en effet pas dans cette version ;)

n°1003979
skeye
Posté le 07-03-2005 à 20:00:14  profilanswer
 

Arjuna a écrit :

J'aime bien le franglais du message d'erreur :D
 
PS: skeye, un UNION, c'est pas une requête imbriquée, mais en effet, MySQL ne le supportait en effet pas dans cette version ;)


bah c'est kif kif, c'est plusieurs requêtes pour un résultat...[:ddr555]


---------------
Can't buy what I want because it's free -
n°1004007
Madi
Posté le 07-03-2005 à 20:22:35  profilanswer
 

Je cherche un e requête pour faire une recherche sur plusieur table une requete de se stile:  
 
SELECT nom FROM action_sociale  
WHERE nom like'%".$nom_recherche."%'  
 
Avec Easyphp 6.0 sa marcher nikel mais maintenant que j'ai installer la nouvelle version sa marche plus    
 
La requete que je ve faire exactement est de ce stile:  
SELECT nom FROM action_sociale  
UNION  
SELECT nom FROM anciens_combattants  
WHERE nom like'%".$nom_recherche."%'  
 
Si quelqu'un peut m'aider sa serait gentil  

n°1004035
Madi
Posté le 07-03-2005 à 20:48:02  profilanswer
 

alor kelkkun pe t-il m'aider?

n°1004093
Arjuna
Aircraft Ident.: F-MBSD
Posté le 07-03-2005 à 21:28:47  profilanswer
 

ben non, je ne vois pas ce qui cloche (mise à part qu'il y a du PHP dans tes requêtes).
 
C'est quoi le msg d'erreur ?

n°1004109
skeye
Posté le 07-03-2005 à 21:45:42  profilanswer
 

Madi a écrit :


SELECT nom FROM action_sociale  
WHERE nom like'%".$nom_recherche."%'


Manque pas un espace après ton like?


---------------
Can't buy what I want because it's free -
n°1004110
Madi
Posté le 07-03-2005 à 21:46:17  profilanswer
 

En faite le probleme c'est que la requere est bonne mais je n'est pas de résultat.C'est depuis que je suis passé a easyphp 7.0.
I don't know why?

n°1004116
skeye
Posté le 07-03-2005 à 21:50:32  profilanswer
 

Madi a écrit :

En faite le probleme c'est que la requere est bonne mais je n'est pas de résultat.C'est depuis que je suis passé a easyphp 7.0.
I don't know why?


Il y a quelquechose dans ta table? [:autobot]


---------------
Can't buy what I want because it's free -
n°1004125
Madi
Posté le 07-03-2005 à 22:06:16  profilanswer
 

Mdr! Bah wui kan même

n°1004139
esox_ch
Posté le 07-03-2005 à 22:14:56  profilanswer
 

Mais s'il veut le recuperer dans toutes ses tables, en admettant que la table "liste_tables" contient le nom de toutes les tables, y aurait pas par hazard un moyen du genre :
SELECT nom FROM (SELECT nom_table FROM liste_tables WHERE 1) WHERE 1 , une sorte de requete imbriquée mais pas sur la WHERE clause mais dans le from :??:
 
[Edit] Apres un petit moment de reflection sur ce que pouvait bien représenter l'erreur 1284 (jamais vue avant) j'ai trouvé :
 
SELECT myname.nom FROM (SELECT table_list.nom_table FROM table_list WHERE 1) AS myname WHERE 1


Message édité par esox_ch le 07-03-2005 à 23:17:59

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1004241
Arjuna
Aircraft Ident.: F-MBSD
Posté le 07-03-2005 à 23:32:06  profilanswer
 

:heink: c'est quoi ces "WHERE 1" ? Tu peux les enlever, ça fera pareil. Deplus, c'est quoi cette requête autour de la sous-requête ?
Comprend plus rien moi :pt1cable:
 
MySQL ça vous mange le cerveau c'est mal ! :o

n°1004343
esox_ch
Posté le 08-03-2005 à 06:56:48  profilanswer
 

Je sais que c'est pareil sans, mais je les met comme ca le jour ou je dois rajouter une where clause je sais deja ou elle va se placer :D.
 
Parcontre si tu comprends plus rien j'peu pa t'aider :lol:


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1004347
skeye
Posté le 08-03-2005 à 07:20:51  profilanswer
 

esox_ch a écrit :

Je sais que c'est pareil sans, mais je les met comme ca le jour ou je dois rajouter une where clause je sais deja ou elle va se placer :D.
 
Parcontre si tu comprends plus rien j'peu pa t'aider :lol:


il comprend rien parce-que ta syntaxe est pas bnne du tout...[:joce]


---------------
Can't buy what I want because it's free -
n°1004468
esox_ch
Posté le 08-03-2005 à 10:16:06  profilanswer
 

skeye a écrit :

il comprend rien parce-que ta syntaxe est pas bnne du tout...[:joce]


 
Tout a fait possible, qu'est-ce que tu tu conseilles comme remplacement? Un Truc avec des Join a droite et a gauche? Désolé j'ai toujours trouvé plus clair en faisant ça avec le table.colonne


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1004481
skeye
Posté le 08-03-2005 à 10:21:23  profilanswer
 

esox_ch a écrit :

Tout a fait possible, qu'est-ce que tu tu conseilles comme remplacement? Un Truc avec des Join a droite et a gauche? Désolé j'ai toujours trouvé plus clair en faisant ça avec le table.colonne


Non, des union...ça existe pas à ma connaissance ce que tu essaies de faire.


---------------
Can't buy what I want because it's free -
n°1004494
Arjuna
Aircraft Ident.: F-MBSD
Posté le 08-03-2005 à 10:26:49  profilanswer
 

skeye a écrit :

Non, des union...ça existe pas à ma connaissance ce que tu essaies de faire.


Ouais, si, les utilisateurs de MySQL avaient inventé une syntaxe de ouf pour émuler un union à partir de outer join dans tous les sens. Syntaxe bien crade, et bonjour les perfs.
 
Cela dit, ce qu'essaie de faire esox_ch, je vois toujours pas le rapport (en fait, je vois même pas ce qu'il tente de faire)...
 

Code :
  1. SELECT myname.nom FROM (SELECT table_list.nom_table FROM table_list WHERE 1) AS myname WHERE 1


 
Ca revient exactement à faire ça :
 

Code :
  1. SELECT table_list.nom_table FROM table_list


 
Résultat, je comprends vraiment toujours pas, même après une nuit de sommeil, la raison de cette première requête !

n°1004506
esox_ch
Posté le 08-03-2005 à 10:31:59  profilanswer
 

En fait ce que j'essaie de faire est de recuperer une donnée presente dans toutes les tables qui sont enumérées dans table_list.
 
En gros je voulais eviter de faire un :
 
SELECT nom_table FROM table_list
 
Puis avec une boucle de recuperer 1 a 1 les nom_table et de les injecter dans un  
 
SELECT ma_donnee FROM $nom_table
 
De faire ça en 1 seul coup quoi ...  
 
Car mon probleme est le suivant : Je ne peut pas regroupper toutes les tables en 1 seule car elles n'ont pas toutes le meme nombre de colonnes.


Message édité par esox_ch le 08-03-2005 à 10:35:29

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1004670
Arjuna
Aircraft Ident.: F-MBSD
Posté le 08-03-2005 à 11:55:47  profilanswer
 

Ben c'est le rôle du UNION.
 
Sinon, attends, je vais regarder un truc...
 
[edit] ouais, nan en fait. on peut faire ça qu'avec un UNION, j'ai du confondre avec un autre truc


Message édité par Arjuna le 08-03-2005 à 11:58:31
n°1004687
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 08-03-2005 à 12:05:21  profilanswer
 

Madi a écrit :

Je cherche un e requête pour faire une recherche sur plusieur table une requete de se stile:  
 
SELECT nom FROM action_sociale  
WHERE nom like'%".$nom_recherche."%'  
 
Avec Easyphp 6.0 sa marcher nikel mais maintenant que j'ai installer la nouvelle version sa marche plus  


 

Madi a écrit :

En faite le probleme c'est que la requere est bonne mais je n'est pas de résultat.C'est depuis que je suis passé a easyphp 7.0.
I don't know why?


 

Madi a écrit :

Mdr! Bah wui kan même


 
oh la laaaaaaaaaa...... que c'est pénible ces posts illisibles écrits en SMS :fou:
si tu fais pas un effort de rédaction et d'orthographe dans les posts suivants, je ferme ton topic


Message édité par Harkonnen le 08-03-2005 à 12:06:05

---------------
J'ai un string dans l'array (Paris Hilton)
n°1005795
esox_ch
Posté le 08-03-2005 à 18:18:23  profilanswer
 

Arjuna a écrit :

Ben c'est le rôle du UNION.
 
Sinon, attends, je vais regarder un truc...
 
[edit] ouais, nan en fait. on peut faire ça qu'avec un UNION, j'ai du confondre avec un autre truc


 
Le truc, comment faire un union si on sait pas a l'avance quelles tables il faut unir ? :??:


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1005798
skeye
Posté le 08-03-2005 à 18:19:58  profilanswer
 

esox_ch a écrit :

Le truc, comment faire un union si on sait pas a l'avance quelles tables il faut unir ? :??:


 
Où tu as vu qu'il connaissait pas les tables??
C'est un problème qui n'a pas de raison d'apparaitre...[:urd]


Message édité par skeye le 08-03-2005 à 18:20:08

---------------
Can't buy what I want because it's free -
n°1005803
esox_ch
Posté le 08-03-2005 à 18:23:49  profilanswer
 

En l'occurence c'etait une question purement personnelle :D. Parceque je me trouve a devoir developper un script qui a un moment listera des info contenues dans toutes les tables de la  base de donnée, et ceci a la suite. Je me demandais si en referencent le nom des tables dans une table "table des matieres" on pouvait, par une requete, recuperer toutes les info d'un coup... Le probleme etant qu'une SELECT * from table 1 UNION SELECT * from table 2 ..... Ne pourrait pas marcher parceque je ne connais pas le nombre/nom des tables a l'avance :D . Je crois que je suis condamné a regler ca avec une boucle php :(


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1005808
skeye
Posté le 08-03-2005 à 18:25:58  profilanswer
 

esox_ch a écrit :

En l'occurence c'etait une question purement personnelle :D. Parceque je me trouve a devoir developper un script qui a un moment listera des info contenues dans toutes les tables de la  base de donnée, et ceci a la suite. Je me demandais si en referencent le nom des tables dans une table "table des matieres" on pouvait, par une requete, recuperer toutes les info d'un coup... Le probleme etant qu'une SELECT * from table 1 UNION SELECT * from table 2 ..... Ne pourrait pas marcher parceque je ne connais pas le nombre/nom des tables a l'avance :D . Je crois que je suis condamné a regler ca avec une boucle php :(


euh de toute manière une union sur des champs qui n'ont rien à voir tu vas te faire envoyer paitre, hein...[:dawa]


---------------
Can't buy what I want because it's free -
n°1005814
esox_ch
Posté le 08-03-2005 à 18:29:13  profilanswer
 

Ui... Mais a part ca, tu crois que ce serais possible de faire en une seule requete, que ca prenne le nom des tables dans 1 table et que ca lise un champ particulier (le meme) dans toutes les tables? Ou je retourne me coucher et je fais ca en PHP avec un while qui execute plein de mini-requetes ?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1005870
Arjuna
Aircraft Ident.: F-MBSD
Posté le 08-03-2005 à 19:06:23  profilanswer
 

Non, c'est impossible. Une des raisons, c'est simplement que d'une table à l'autre, le nom des champs, leur type et leur nombre sera différent. A partir de là, aucun SGBD n'est capable de te retourner les données en une passe.
 
Tu fais une première requête (dans les tables système, c'est mieu que dans une table "table des matières" ), et ensuite, tu fais une requête par table trouvée. T'as pas le choix.

n°1005901
esox_ch
Posté le 08-03-2005 à 19:27:13  profilanswer
 

D'accord merci :) . Zut alors :P


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  PROBLEME REQUETE: SELECT nom FROM (plusieur table)

 

Sujets relatifs
[lex/yacc] Probleme pas logiqueProblème résolution équation sous Matlab
[VB] Problème syntaxe fin de ligneProbleme de validité des stats avec mystats vs direct-stats
PROBLEME DE REQETTE SQLProblème MySQL, accès localhost supprimé
probleme de driverPb de requête Bdd / php
probleme qt 
Plus de sujets relatifs à : PROBLEME REQUETE: SELECT nom FROM (plusieur table)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR