Maybe something like this SELECT Entries.`created` AS `timestamp`, Entries.`poster` AS `username`, Entries.`body` AS `message`FROM(SELECT * FROM `ost_thread` WHERE `object_id` = 1 AND `object_type` = 'T') ThreadLEFT JOIN(SELECT * FROM `ost_thread_entry`) EntriesON Thread.`id` = Entries.`thread_id`UNION ALLSELECT Events.`timestamp` AS `timestamp`, Events.`username` AS `username`, Events.`state` AS `message`FROM(SELECT * FROM `ost_thread` WHERE `object_id` = 1 AND `object_type` = 'T') ThreadLEFT JOIN(SELECT * FROM `ost_thread_event`) EventsON Thread.`id` = Events.`thread_id`ORDER BY `timestamp`