Vorrei realizzare uno script php/mysql che selezioni il valore più alto che si trova in una colonna tra più tabelle e magari riuscire a risalire alla tabella dove si trova...come posso fare???![]()
Vorrei realizzare uno script php/mysql che selezioni il valore più alto che si trova in una colonna tra più tabelle e magari riuscire a risalire alla tabella dove si trova...come posso fare???![]()
Ciao
la prima cosa che mi verrebbe in mente di fare è estrarre i valori da tutte le celle mettendoli in un array del tipo $mioarray[tabella][$i] = $nometabella; $mioarray[valorecampo][$i] = $valorecampo; poi ordini l'array con sort($mioarray); poi $mioarray[tabella][0] recuperi la tabella e con $mioarray[valorecampo][0] recuperi il valore
Ciao,
una possibile soluzione potrebbe essere questa:
codice:SELECT nome_colonna_tabella_1 AS valore_massimo, 'tabella1' AS tabella FROM nome_tabella_1 UNION SELECT nome_colonna_tabella_2, 'tabella2' FROM nome_tabella_2 ... UNION SELECT nome_colonna_tabella_N, 'tabellaN' FROM nome_tabella_N ORDER BY valore_massimo DESC LIMIT 1
Grazie per le risposte. Scusatemi per l'ignoranza ma riesco a capire quelle stringhe di mysql perchè non so a cosa serve AS? me lo potreste dire?
Detta brutalmente: AS assegna un'etichetta (un nome nuovo) a quel che ci sta prima. In quel caso "nome_colonna_tabella_1 AS valore_massimo" viene assegnato a nome_colonna_tabella_1 l'etichetta valore_massimo
facci sapere se funziona la query..
La query funziona, però a me servono anche le altre colonne, cioè mi serve risalire a chi corrisponde quel valore più alto, come posso fare??
P.S.:
ecco lo script
Codice PHP:
<?php $connessione=mysql_connect('localhost','root',''); $selezione=mysql_select_db("utente",$connessione); $query=mysql_query("SELECT Voto AS valore_massimo, 'Prova' AS tabella FROM Prova UNION SELECT Voto, 'prova1' FROM prova1 ORDER BY valore_massimo DESC LIMIT 1 "); $query2=mysql_result($query,0,'valore_massimo'); echo"$query2"; ?>
ho risolto da solo il problema , grazie per l'aiuto...
P.S.: Scusate per il doppio post ma quello precedente non potevo più modificarlo perchè sono scaduti il 60 minuti...mi disp
Si in effetti mi sembrava pigliasse solo il primo valore come valore massimo ma non sono un espero di mysql, forse Magicale s'è scordato, o ha lasciato sott'inteso qualcosa..
Posta come hai risolto potrebbe servire!
Grazie
Se servono altri dati, come ad esempio l'ID, basta aggiungerli. L'importante è che ogni select della union selezioni lo stesso numero di colonne, nello stesso ordine e tipoOriginariamente inviato da Mi|{y
Si in effetti mi sembrava pigliasse solo il primo valore come valore massimo ma non sono un espero di mysql, forse Magicale s'è scordato, o ha lasciato sott'inteso qualcosa..
Posta come hai risolto potrebbe servire!
Grazie
codice:SELECT nome_colonna_tabella_1 AS valore_massimo, 'tabella1' AS tabella, nome_tabella_1.id AS id FROM nome_tabella_1 UNION SELECT nome_colonna_tabella_2, 'tabella2', nome_tabella_2.id FROM nome_tabella_2 ... UNION SELECT nome_colonna_tabella_N, 'tabellaN', nome_tabella_N.id FROM nome_tabella_N ORDER BY valore_massimo DESC LIMIT 1