Combining multiple left join for one single line
Use the GROUP_CONCAT function

SELECT header,GROUP_CONCAT(eMessage) ErrorMessages FROM
(
    SELECT tblSData.header,IFNULL(tblEAlert.eMessage,'') eMessage
    FROM tblSData
    LEFT JOIN tblEAlert ON tblSData.sDataID=tblEAlert.sDataID 
    Where tblSData.aID=".$aID." Order By tblSData.dateTimer  Asc
) A
GROUP BY header;


or

SELECT tblSData.header,GROUP_CONCAT(IFNULL(tblEAlert.eMessage,'')) ErrorMessages 
FROM tblSData
LEFT JOIN tblEAlert ON tblSData.sDataID=tblEAlert.sDataID 
Where tblSData.aID=".$aID." Order By tblSData.dateTimer  Asc
GROUP BY header;    


A good index to create for this would be

ALTER TABLE tblSData ADD INDEX (aID,dateTimer);


What good will this index do ?


This will get everything for a specific aID
All aID rows are  ordered by dateTimer
The sDataID column will be available for use from the index rather than the table because the Clustered Index will include the PRIMARY KEY anyway.


You should also create this one

ALTER TABLE tblEAlert ADD INDEX (sDataID);


Give it a Try !!!