@ chorn
Ja, die Datenbank ist normalisiert.
Aber das ist nicht mein Problem.
Ich hole mal noch etwas weiter aus.
Ich habe eine Datenbank mit Renneinsätzen.
Die einzelnen Einsätze werden in die Tabelle history eingetragen.
Diese referenziert auf andere Tabellen mit den Rennen, Fahrern, Teams, Rennautos, etc.
Und die Tabelle history sprengt nun leider das mysql Limit. Demnach geht es in der Tabelle history2 weiter.
Und ich muss alle Abragen auf der Webseite über beide history Tabellen erweitern.
Beispiel wie ich in einem PHP Script eine Auflistung von Renneinsätzen aus beiden Tabellen erstelle:
PHP-Code:
// DB Abfrage
$anfrage5 = "
SELECT
DISTINCT history.number, driver.fullname'driver1', team.name'team', team2.name'name2', teamadd.name'add', car.name'car', history.mate
FROM
`history`,`driver`,`team`,`team2`,`teamadd`,`car`, `race`
WHERE
history.race = '".mysql_real_escape_string($_POST['racefull'])."'
AND history.driver1 = driver.id
AND history.team = team.id
AND history.team2 = team2.id
AND history.teamadd = teamadd.id
AND history.car = car.id
UNION
SELECT
DISTINCT history2.number, driver.fullname'driver1', team.name'team', team2.name'name2', teamadd.name'add', car.name'car', history2.mate
FROM
`history2`,`driver`,`team`,`team2`,`teamadd`,`car`, `race`
WHERE
history2.race = '".mysql_real_escape_string($_POST['racefull'])."'
AND history2.driver1 = driver.id
AND history2.team = team.id
AND history2.team2 = team2.id
AND history2.teamadd = teamadd.id
AND history2.car = car.id
ORDER BY team asc, number, mate, driver1
";
Beispiel wie ich Renneinsätze aus beiden Tabellen zusammenzähle:
PHP-Code:
$anfrage1 = "SELECT (SELECT COUNT(*) from history where driver1 is not NULL and team is not NULL and car is not NULL) +
(SELECT COUNT(*) from history2 where driver1 is not NULL and team is not NULL and car is not NULL) AS total1";
Und jetzt kommt eben mein Problem.
Wie mache ich eine Abfrage über beide history Tabellen, wo:
- im Output eine Liste erstellt wird, wo eine Rangliste nach Anzahl Rennen, mit dem jeweiligen Fahrer daneben dargestellt wird.
- also quasi eine Kombination aus UNION und +
- natürlich auch noch mit einem Distinct über das Resultat beider Tabellen, da ein Rennen wo ein Fahrer auf zwei Autos eingesetzt wurde, nur einmal zählt.
Nur über eine history Tabelle war das eine einfache Sache. Aber über zwei Tabellen kriege ich es nicht hin.