Given a table named RECORD in mysql with following structure:
rid(pk & AI)   patientid(fk) recordTYPE(varchar)  recordValue(varchar) recordTimestamp(timestamp)
     1             1             temperature(℃)           37.2              2015-08-11 18:10:04
     2             1             weight(kg)                65.0              2015-08-11 18:20:08                    
     3             1             heartbeat(bpm)            66                2015-08-11 18:30:08
     4             1             temperature(℃)           36.8              2015-08-11 18:32:08
You can see that for the same date, there can be multiple records for one particular type of record. e.g. temperature in the sample data :
   rid        patientid          recordTYPE             value              recordtimestamp
    1             1             temperature(℃)           37.2              2015-08-11 18:10:04
    4             1             temperature(℃)           36.8              2015-08-11 18:32:08
In this case, we should choose the latest record. i.e. the record with rid = 4 and value = 36.8 .
Now given an input date e.g. '2015-8-11', I want to do a query to obtain something like:
   date      patientid  temperature(℃)    weight(kg)    heartbeat(bpm)
2015-08-11       1         36.8              65.0            66
2015-08-11       2         36.5              80.3            70
2015-08-11       3         35.5              90.5            80
     ..........................................................
     ..........................................................
2015-08-11       4         35.5              null            null
                                 Fig. 2
In addition, you can see that for a particular date, there may not be any records of some types. In this case, the value in that column is null.
I tried the following query:
   SELECT max(recordTimestamp), patientid, recordTYPE, recordValue  
   FROM RECORD 
   WHERE date(recordTimestamp) = '2015-08-11'
   GROUP BY patientid, recordTYPE
The result is something like:
   date      patientid     recordTYPE      recordValue    
2015-08-11       1       temperature(℃)    36.8              
2015-08-11       1         weight(kg)       65.0            
2015-08-11       1        heartbeat(bpm)    66
2015-08-11       2       temperature(℃)    36.5              
2015-08-11       2         weight(kg)       80.3            
2015-08-11       2        heartbeat(bpm)    70
2015-08-11       4       temperature(℃)    35.5              
                                 Fig. 4
The questions are:
Given this table RECORD, what is the proper mysql statement (in terms of performance such as retrieval speed) to produce the desired result set (i.e. Fig.2)?
Will it be better (in terms of facilitating query and scalability such as adding new types of record) if the db design is changed? e.g. Create one table for each type of record instead of putting all types of record in one table.
Any suggestion is appreciated as I'm a db novice...... Thank you.