Estrazione da più tabelle

E' da ore che ci sbatto la testa ma non sono riuscito a trovare una soluzione, ho una tabella chiamata apparati con i campi: id_apparato, seriale, modello e un'altra chiamata manutenzioni con i campi: id_apparato(chiave esterna), data_manutenzione, tecnico. Per ogni record della tabella apparati corrispondono + di 2 record nella tabella manutenzioni.

Il risultato che vorrei ottenere se possibile è, che alla stampa di ogni record della tabella1 mi dica anche la data dell'ultima manutenzione effettuata su quell'apparato.

Per esempio: il modello 557 ha avuto le seguenti manutenzioni, il 10/2/09, il 22/4/09 e il 3/5/09, il risultato dovrà essere: id_apparato: 1, seriale: 5570034, ultima manutenzione effettuata: 3/5/09.

Non so se sono stato chiaro. Il db che sto utilizzando è MySQL.

Grazie,

ciao.

inviato 7 anni fa
Nando
modificato 7 anni fa
X 0 X

prova qualcosa del genere:

SELECT
   A.id_apparato, seriale, modello, MAX(data_manutenzione)
   FROM
      apparati A LEFT JOIN manutenzioni M 
         ON A.id_apparato = M.id_apparato
   GROUP BY
      A.id_apparato

Ho usato la LEFT JOIN nel caso qualche apparato non abbia nessuna manutenzione

 :bye:

risposto 7 anni fa
Gianni Tomasicchio
X 0 X

Purtroppo per ordini dall'alto ho dovuto spostare la piattaforma su un altro DB, PostgreSQL ma c'è un problema, la query che mi avevi dato funziona soltanto su mysql. Su postgres mi esce fuori questo errore:

Query failed: ERROR: column "t_apparati.ckin" must appear in the GROUP BY clause or be used in an aggregate function

come si protrebbe risolvere ?

Grazie,

ciao.

risposto 7 anni fa
Nando
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda