Rubberick
16-02-2008, 12:25
Ciao ragazzi, ho un piccolo problemino con una query, vediamo se potete aiutarmi...
ho 2 tabelle organizzate cosi'
id | nome | desc
id | last_up_time | valore1 | valore2
vorrei fare una query dove ottengo id, nome, desc...
fino e qui avrei un banale
SELECT * FROM table1
tuttavia vorrei ottenere in una sola query anche i valori di table2 ordinati per tempo
SELECT * FROM table1 LEFT JOIN table2 ON (table1.id = table2.id) ORDER BY table2.last_up_time DESC
molto bene ci siamo quasi... unico problema... vorrei non avere ripetizioni...
cioe' in table 2 ci saranno molti valori con lo stesso id, in quanto la chiave primaria e' il tempo di aggiornamento che e' sempre diverso...
a me interessa ottenere un unica riga di table2 dove il tempo sia il + aggiornato =) non mi interessano tutte le altre righe con tempo vecchio
ho provato ad usare group by table1.id ma non funziona =|, cioe' mi vengono restituiti tutti i dati come li vorrei solo che l'ordinamento e' fatto in seguito... non prima di gruppare =|, le righe hanno il campo time che vogliono loro non l'ultimo aggiornamento =(
SELECT * FROM table1 LEFT JOIN table2 ON (table1.id = table2.id) GROUP BY table1.id ORDER BY table2.last_up_time DESC
Io avrei bisogno di invertire concettualmente l'ordinamento e poi il group ma mysql mi da errore... come posso fare? dove sbaglio?
ho 2 tabelle organizzate cosi'
id | nome | desc
id | last_up_time | valore1 | valore2
vorrei fare una query dove ottengo id, nome, desc...
fino e qui avrei un banale
SELECT * FROM table1
tuttavia vorrei ottenere in una sola query anche i valori di table2 ordinati per tempo
SELECT * FROM table1 LEFT JOIN table2 ON (table1.id = table2.id) ORDER BY table2.last_up_time DESC
molto bene ci siamo quasi... unico problema... vorrei non avere ripetizioni...
cioe' in table 2 ci saranno molti valori con lo stesso id, in quanto la chiave primaria e' il tempo di aggiornamento che e' sempre diverso...
a me interessa ottenere un unica riga di table2 dove il tempo sia il + aggiornato =) non mi interessano tutte le altre righe con tempo vecchio
ho provato ad usare group by table1.id ma non funziona =|, cioe' mi vengono restituiti tutti i dati come li vorrei solo che l'ordinamento e' fatto in seguito... non prima di gruppare =|, le righe hanno il campo time che vogliono loro non l'ultimo aggiornamento =(
SELECT * FROM table1 LEFT JOIN table2 ON (table1.id = table2.id) GROUP BY table1.id ORDER BY table2.last_up_time DESC
Io avrei bisogno di invertire concettualmente l'ordinamento e poi il group ma mysql mi da errore... come posso fare? dove sbaglio?