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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Requete dans plusieurs tables [resolu]

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Requete dans plusieurs tables [resolu]

n°1890319
_julien_
Posté le 02-06-2009 à 11:19:23  profilanswer
 

Bonjour ,
 
j ai plusieurs tables (dont la strcuture est differentes) , et dont le nombre peut evoluer (en temps reel)
 
Le point commun de ces tables et de posseder un champ date,
J aimerais pouvoir lancer une requete qui me renvoie le min de toutes les dates.
 
Le probleme bloque des le debut ,  
 
select date from a,b;
ERROR 1052 (23000): Column 'date' in field list is ambiguous
 
, ensuite y a t il moyen d effectuer une recherche avec dans le from l'equivalent de "all tables"
 
 
Merci beaucoup


Message édité par _julien_ le 02-06-2009 à 16:19:20
mood
Publicité
Posté le 02-06-2009 à 11:19:23  profilanswer
 

n°1890326
flo850
moi je
Posté le 02-06-2009 à 11:27:00  profilanswer
 

select least(min(a.date,b.date) FROM a , b

 

et non, on peut pas faire de recherche sans tous les champs de toutes les tables sans les nommer explicitement

 

bonne recherche

 

edit : je suis curieux, est ce que tu peux m'expliquer quel est le besoin de créer des tables en temps réel ?


Message édité par flo850 le 02-06-2009 à 11:27:33

---------------

n°1890332
casimimir
Posté le 02-06-2009 à 11:30:41  profilanswer
 

l

Citation :

ensuite y a t il moyen d effectuer une recherche avec dans le from l'equivalent de "all tables"


 
non, il faut interroger le dictionnaire de donnée (propre a chaque sgbd, pour oracle je peux t'aider, pour le reste pas), et faire du sql dynamique pour interrober chaque table
 

Citation :

select date from a,b;


 
ce serait plus judicieux de faire des requete séparée, la il va s'amuser a faire le produit cartésien alors que ce n'est pas nécéssaire.

n°1890345
_julien_
Posté le 02-06-2009 à 11:42:58  profilanswer
 

En fait , la base de données est connectée avec un logiciel , qui construit de nouvelles tables a chaque fois qu il enregistre de nouvelle données.
 
J aimerais construire une requête  qui me renvoie la date la plus petite contenue dans cet ensemble de table qui est "mobile"
 
il semblerait que ca ne soit pas si facile alors !!!!
 
en tout cas , je ne comprends pas pourquoi la requete  
 

Code :
  1. select date from a,b;


 
ne fonctionne pas .
 
Merci de vos reponses et du temps accordé à mon probleme

n°1890346
flo850
moi je
Posté le 02-06-2009 à 11:44:57  profilanswer
 

parcequ'il ne sait pas de quelle date tu parles ( a.date , ou b.date )
 
quand un champ porte le même nom dans plusieurs table,s tu dois appeler nomTable.nomChamp


---------------

n°1890351
_julien_
Posté le 02-06-2009 à 11:46:34  profilanswer
 

alors peut etrre faut il faire une jointure des 2 tables avant ?
 
Joindre les 2 colonnes date ?
cela doit etre possible  
je vais voir

n°1890393
_julien_
Posté le 02-06-2009 à 13:51:53  profilanswer
 

Je vais formuler alors ma nouvelle question , vous avez trois tables , a,b,c , dont la structure n a pas forcement quelque chose en commun à part une colonne DATETIME.
 
 
Comment feriez vous pour rechercher la date la plus petite ?
 
 

n°1890394
Deamon
Posté le 02-06-2009 à 13:56:39  profilanswer
 

ça marche pas ce qu'a proposé flo : "select least(min(a.date,b.date)) FROM a , b" ?


Message édité par Deamon le 02-06-2009 à 13:56:49
n°1890400
casimimir
Posté le 02-06-2009 à 14:08:17  profilanswer
 

franchement si t'as 3 tables de 1000 lignes avec cette méthode il va d'abord croiser inutilement et générer en mémoire une pseudo table de 1000x1000x1000 lignes (et ça m'étonnerait qu'elles fassent moins de 1000) -> mauvais plan.

 

trouver comment interroger le dictionnaire de donnée de ton sgbd, faire une procédure stockée qui va construire des requêtes dynamiques et interroger chaque table séparément, ou avec le langage de ton choix ça marche aussi -> bon plan.


Message édité par casimimir le 02-06-2009 à 14:08:52
n°1890402
flo850
moi je
Posté le 02-06-2009 à 14:10:09  profilanswer
 

ou tout simplement un union
 
(SELECT MIN(date) as mini  FROM a)
UNION
(SELECT MIN(date) as mini FROM b)
....
(SELECT MIN(date) as mini  FROM  q)
ORDER BY mini DESC  
LIMIT 1
 
 


---------------

mood
Publicité
Posté le 02-06-2009 à 14:10:09  profilanswer
 

n°1890498
_julien_
Posté le 02-06-2009 à 16:18:31  profilanswer
 

Je vous remercie tous de vos réponses et de l'attention portée à ma demande
 
La méthode  avec les unions marche très bien ,et vos être appliquée dans un cas où je dois le faire sur uniquement 2 tables.
 
Sinon , je me suis fais un algo en java qui recuperer les noms des tables dans mysql et qui va chercher ce qu'il faut apres.
 
En ce qui me concerne , vous m'avez bien aidé le sujet est clos !!!!!!

n°1899720
bricocoman
j'aime les modos
Posté le 27-06-2009 à 17:36:45  profilanswer
 

_julien_ a écrit :

En fait , la base de données est connectée avec un logiciel , qui construit de nouvelles tables a chaque fois qu il enregistre de nouvelle données.

 

J aimerais construire une requête  qui me renvoie la date la plus petite contenue dans cet ensemble de table qui est "mobile"

 

il semblerait que ca ne soit pas si facile alors !!!!

 

en tout cas , je ne comprends pas pourquoi la requete

 
Code :
  1. select date from a,b;
 

ne fonctionne pas .

 

Merci de vos reponses et du temps accordé à mon probleme


sinon  un truc dans le genre :o

Code :
  1. select a.date as datea, b.date as dateb from a,b;
 


oups, j'avais pas vu le [resolu] [:cupra]


Message édité par bricocoman le 27-06-2009 à 17:39:11

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

  Requete dans plusieurs tables [resolu]

 

Sujets relatifs
[Resolu]Controle de saisie Adresse IP sur un formulaire[Résolu] Erreur incompréhensible...
[Resolu]GD[Resolu]Problème de mise en forme de Fichier .txt
Requéte sur Access[resolu]Socket reception de 0
[Résolu][PHP] debug de la fonction exec[résolu] Lire le contenu de mails d'une BAL avec PHP
[Résolu][Javascript]Boucle de test et définition de variable.Utilisation de Fork: plusieurs boucles executées en parrallèle
Plus de sujets relatifs à : Requete dans plusieurs tables [resolu]


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