Page 1 sur 1

Valeur la plus elevé entre plusieurs tables

Posté : 18 mai 2005, 15:52
par Khalim
Bonjour,
Je cherche la requete qui me permettra de récupérer la valeur max d'un champs que l'on retrouve dans plusieurs tables.

T1, T2 et T3 possèdent un champ nommé de la même façon dans les 3 tables : C1, le reste des champs est différent.
la valeur de ce champ pour un enregistrement, pour une table ne se retrouve jamais dans les autres.

Je bloque. Merci de toute aide.

Posté : 18 mai 2005, 15:56
par Cyrano
J'ai pas compris grand chose, mais pour trouver la valeur la plus grande dans la colonne d'une table, c'est :

Code : Tout sélectionner

SELECT MAX(`nom_champ`) FROM `table`

Posté : 18 mai 2005, 16:04
par Invité
lol
Je m'exprime mal GRRR
Pour sortir le max d'une table, c'est bon.

En fait j'aimerais trouver quel est le chiffre le plus grand dans un champ que l'on retrouve sur plusieurs tables.

Ex:
Le champs dans T1 contient : 10 , 25 , 33.
Le champs dans T2 contient : 11, 24, 68.
Le champs dans T3 contient : 15, 30, 56.

Et donc j'essaie avec juste une requete SQL de sortir '68'.
Sinon en combinant avec du PHP, je saurais réalisé, mais celà ne me satisfait pas vraiment.

Posté : 18 mai 2005, 17:34
par albat
Je n'ai pas bien le temps de vérifier, mais je te donne 2 idées :
- requêtes UNION (sont-elles acceptées par MySQL ?)
- constituer une table temporaire à partir des 3 autres et faire la recherche sur cette table.

Posté : 19 mai 2005, 13:05
par Ripat
requêtes UNION (sont-elles acceptées par MySQL ?)
Oui depuis 4.0 et sup.

Je ne vois pas d'autres solutions non plus.

Code : Tout sélectionner

(SELECT col_1 FROM t_1) UNION (SELECT col_1 FROM t_2) UNION (SELECT col_1 FROM t_3) ORDER BY col_1 DESC LIMIT 1
Ne pas oublier les parenthèses sinon les clauses ORDER et LIMIT ne s'appliqueront pas à l'ensemble de l'union.

Posté : 19 mai 2005, 15:16
par albat
La réponse ayant été fournie, je me permets de suggérer
que le modèle de données serait (peut-être) à revoir... ;)