Вот основной способ сделать это. В этом примере у каждой таблицы есть поля 'id' и 'timestamp', и мы хотим отсортировать результаты по полю timestamp.
<?
function bubblesort(array $items) {
// Sorts the items in a two-dimensional array based on a
// timestamp in the first field of the arrays passed.
do{
$flag = false;
for ($i = 0; $i < (count($items) - 1); $i++) {
if(strtotime($items[$i][0]) > strtotime($items[$i + 1][0])) {
$swap = $items[$i];
$items[$i] = $items[$i + 1];
$items[$i + 1] = $swap;
$flag = true;
}
}
}
while($flag);
return $items;
}
$results = array();
// Get results for the first table
$result = mysql_query("SELECT `timestamp`, `id` FROM `table1`;");
if (!$result)
die(mysql_error());
while ($row = mysql_fetch_array($result))
$results[] = array($row[0], $row[1]);
// Get results for the second table
$result = mysql_query("SELECT `timestamp`, `id` FROM `table2`;");
if (!$result)
die(mysql_error());
while ($row = mysql_fetch_array($result))
$results[] = array($row[0], $row[1]);
// Get results for the third table
$result = mysql_query("SELECT `timestamp`, `id` FROM `table3`;");
if (!$result)
die(mysql_error());
while ($row = mysql_fetch_array($result))
$results[] = array($row[0], $row[1]);
// Sort the joint results
$results = bubblesort($results);
?>
Конечно, каждый из запросов должен быть адаптирован для отдельной таблицы. Обратите внимание, что я использовал аллогрит с пузырьковой сортировкой, в зависимости от ожидаемых результатов может быть лучше другой алгоритм сортировки.
Также может быть лучше объединить три запроса SELECT в один с помощью UNION (см. документацию ), но я недостаточно знаю структуру таблиц, чтобы сообщить вам запрос, который вы нужно.