Hallo Forum,
ich habe ein kleines Problem.
Und zwar habe ich eine große Datenbank mit 44 Tabellen in denen jeweils Datensätze eines bestimmten Zeitraums stehen.
Nun muß ich diesen Zeitraum bestimmen und mach deshalb folgende Abfrage:
das erste Select gibt mir den ersten eintrag und das zweite den letzten.
Alles schön und gut, nur leider ist das bei 44 Tabellen zu zeit und speicherintensiv.
mysql selbst stellt ja keine funktion für den ersten und letzten eintrag zur verfügung (warum eigentlich nicht?), hat jemand von euch eine idee wie ich diese abfrage optimieren kann?
vielen dank
ich habe ein kleines Problem.
Und zwar habe ich eine große Datenbank mit 44 Tabellen in denen jeweils Datensätze eines bestimmten Zeitraums stehen.
Nun muß ich diesen Zeitraum bestimmen und mach deshalb folgende Abfrage:
PHP-Code:
function dataRange($stationNr) {
$result = mysql_query("SELECT DATE FROM `$stationNr` ORDER BY DATE LIMIT 0,1");
if (! $result) { die ($php_errormsg); }
$row = mysql_fetch_array($result, MYSQL_ASSOC);
preg_match("/(\d{4})-(\d{2})-(\d{2})/",$row['DATE'], $tmpp);
$result = mysql_query("SELECT DATE FROM `$stationNr` ORDER BY DATE DESC LIMIT 0,1");
if (! $result) { die ($php_errormsg); }
$row = mysql_fetch_array($result, MYSQL_ASSOC);
preg_match("/(\d{4})-(\d{2})-(\d{2})/",$row['DATE'], $tmp);
return "$tmpp[3].$tmpp[2].$tmpp[1] - $tmp[3].$tmp[2].$tmp[1]";
//return "01.01.1949 - 03.01.2004";
}
Alles schön und gut, nur leider ist das bei 44 Tabellen zu zeit und speicherintensiv.
mysql selbst stellt ja keine funktion für den ersten und letzten eintrag zur verfügung (warum eigentlich nicht?), hat jemand von euch eine idee wie ich diese abfrage optimieren kann?
vielen dank
Kommentar