Ho una tabella "exercise_results". Le persone hanno inserito i loro risultati all'inizio e poi due mesi dopo hanno inserito i loro risultati per vedere quanto hanno migliorato. Il loro set iniziale ha l'esercizio_type_id di "1" e il set finale ha l'esercizio_type_id di "2".Come unire due file MySQL in uno e visualizzarli in una tabella utilizzando PHP?
Ho bisogno di un modo per visualizzare questo fuori in una tabella HTML che assomiglia a questo:
un ciclo foreach, ma questo è con le singole righe. Ho problemi a combinare due righe in una. Penso che questo possa essere semplice come una sorta di join MySQL? Identifichiamo ogni persona dal suo person_unique_id.
Qui sono i miei campi:
id | person_unique_id | person_name | exercise_type_id | mile_running_time | bench_press_weight_lbs | squat_weight_lbs | date_of_exercise_performed
righe di esempio:
1 | J123 | John Smith | 1 | 8 | 200 | 300 | 2010-03-20
2 | J123 | John Smith | 2 | 7 | 250 | 400 | 2010-05-20
3 | X584 | Jane Doe | 1 | 10 | 100 | 200 | 2010-03-20
4 | X584 | Jane Doe | 2 | 8 | 150 | 220 | 2010-05-20
che ho provato un paio di soluzioni, ma mi sono perso. Qualsiasi aiuto sarebbe grande. Grazie!
EDIT:
In risposta al commento qui sotto, mi auguro per alcuni dati come:
array 0 =>
array
'Exercise' =>
array
'person_unique_id' => string 'J123'
'person_name' => string 'John Smith'
'begin_mile_running_time' => string '8'
'end_mile_running_time' => string '7'
1 =>
array
'Exercise' =>
array
'person_unique_id' => string 'X584'
'person_name' => string 'Jane Doe'
'begin_mile_running_time' => string '10'
'end_mile_running_time' => string '8'
Il database è stato riparato? Voglio dire, potresti cambiare i tavoli? –
Non proprio. Vi sono già molti dati nelle tabelle utilizzate in un'applicazione di produzione. – Michael
Puoi farlo con la query raggruppando per id e selezionando MAX (IF (exercise_type_id = 1, mile_running_time, '')) AS 'Start', MAX (IF (exercise_type_id = 2, mile_running_time, '')) AS 'Fine 'ecc ... può essere un po' impegnativo, ma ho solo dovuto fare questo tipo di rollup. – methodin