GROUP BY e ORDER BY

Androidino

Utente Attivo
16 Gen 2014
30
1
0
Ciao a tutti, sono nel pallone per (credo) un semplice problema:

date tre tabelle correlate con una LEFT JOIN

1 Dati Anagrafici
2 Visite Mediche
3 Prove Fisiche

SELECT dati_anagrafici.ID, dati_anagrafici.Cognome, dati_anagrafici.Nome, dati_anagrafici.DataNascita, visite_mediche.`data_visita_medica`, prove_fisiche.`Data Prova Fisica`
FROM dati_anagrafici left join visite_mediche on dati_anagrafici.id=visite_mediche.id_anagrafica left join prove_fisiche on dati_anagrafici.id=prove_fisiche.id_anagrafica
GROUP BY dati_anagrafici.Cognome, dati_anagrafici.nome
ORDER BY dati_anagrafici.Cognome, prove_fisiche.`Data Prova Fisica` DESC, visite_mediche.`data_visita_medica` DESC

RISULTATO:

mi raggruppa per cognome e mi fa vedere solo la prima data!:dhò::dhò:

Grazie in anticipo!!!
 
credo abbia chiesto tu di avere solo 1 riga con "GROUP BY"
togliendolo, ottengo la risposta giusta
(ovviamente su un esempio mio, sostituendo i nomi adeguatamente)
in ogni caso ti suggerisco questa stesura, che mi sembra anche più leggibile

Codice:
SELECT 
  dati_anagrafici.ID, 
  dati_anagrafici.Cognome, 
  dati_anagrafici.Nome, 
  dati_anagrafici.DataNascita, 
  visite_mediche.`data_visita_medica` as data_visita,
  0 as data_prova
FROM dati_anagrafici, visite_mediche
WHERE visite_mediche.id_anagrafica=dati_anagrafici.id
ORDER BY dati_anagrafici.Cognome, dati_anagrafici.DataNascita, visite_mediche.`data_visita_medica` DESC

UNION

SELECT 
  dati_anagrafici.ID, 
  dati_anagrafici.Cognome, 
  dati_anagrafici.Nome, 
  dati_anagrafici.DataNascita, 
  0 as data_visita,
  prove_fisiche.`Data Prova Fisica` as data_prova
FROM dati_anagrafici, prove_fisiche
WHERE prove_fisiche.id_anagrafica=dati_anagrafici.id
ORDER BY dati_anagrafici.Cognome, dati_anagrafici.DataNascita, prove_fisiche.`Data Prova Fisica` DESC

spero di non aver inserito errori d'ortografia
ciao
Marino

ps attento al cambio nome delle date
 

Discussioni simili