We have a query as below.
SELECT tblSData.header,
tblEAlert.eMessage
FROM tblSData
LEFT JOIN tblEAlert ON tblSData.sDataID=tblEAlert.sDataID
Where tblSData.aID=".$aID." Order By tblSData.dateTimer Asc
Structure for the tables are as below:
CREATE TABLE IF NOT EXISTS `tblSData` (
`sDataID` int(11) NOT NULL AUTO_INCREMENT,
`header` varchar(255) NOT NULL,
`aID` int(5) NOT NULL,
`gFInID` int(5) NOT NULL,
`gFOutID` int(5) NOT NULL,
`gFAInID` int(5) NOT NULL,
`gFAOutID` int(5) NOT NULL,
`eAlertID` int(5) NOT NULL,
`dateTimer` datetime NOT NULL
PRIMARY KEY (`sDataID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `tblEAlert` (
`eAlertID` int(11) NOT NULL AUTO_INCREMENT,
`sDataID` int(5) NOT NULL,
`eID` int(5) NOT NULL,
`aID` int(5) NOT NULL,
`eDateTime` datetime NOT NULL,
`eInsertDateTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`eMessage` varchar(255) NOT NULL,
PRIMARY KEY (`eAlertID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Sample data for tblSData
1,"A1",1122,100,102,1,2,1,2013-07-13 15:30:19
2,"A3",1122,104,103,3,4,3,2013-07-13 15:45:19
3,"A4",1122,105,108,5,6,7,2013-07-13 15:55:19
Sample data for tblEAlert
1,1,1,1122,2013-07-13 15:30:19,2013-07-13 15:30:19,"Alert 1"
2,1,2,1122,2013-07-13 15:30:19,2013-07-13 15:30:19,"Alert 2"
3,2,2,1122,2013-07-13 15:45:19,2013-07-13 15:45:19,"Alert 3"
4,2,3,1122,2013-07-13 15:45:19,2013-07-13 15:45:19,"Alert 4"
5,2,4,1122,2013-07-13 15:45:19,2013-07-13 15:45:19,"Alert 5"
6,2,5,1122,2013-07-13 15:45:19,2013-07-13 15:45:19,"Alert 6"
Sample output is.
"A1","Alert 1"
"A1","Alert 2"
"A2","Alert 3"
"A2","Alert 4"
"A2","Alert 5"
"A2","Alert 6"
The problem now is how to show say for e.g. A1 all the Alert Message in one line and same goes for A2 etc. Now each alert message is on a different line.
Best Answer
Use the GROUP_CONCAT function
or
A good index to create for this would be
What good will this index do ?
aID
aID
rows are ordered bydateTimer
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
Give it a Try !!!