Hallo, ich möchte durch eine SQL-Abfrage folgende zwei Tabellen miteinander verbinden, damit ein Ranking entsteht.
1. Tabelle spiele:
Code:
CREATE TABLE `spiele` (
`spielid` int(11) NOT NULL AUTO_INCREMENT,
`spieleridh` int(11) NOT NULL,
`spielerida` int(11) NOT NULL,
`toreh` int(11) NOT NULL,
`torea` int(11) NOT NULL,
`eintragid` int(11) NOT NULL,
PRIMARY KEY (`spielid`)
) ENGINE=MyISAM AUTO_INCREMENT=24 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
spielid : ID eines ausgetragenen Spiels, welches immer mit 10 Toren endet.
spieleridh : ID des Benutzers der Heimrecht hatte
spielerida : ID des Benutzers der auswärts gespielt hat
toreh: Geschossene Tore des Heim-Spielers
toreh: Geschossene Tore des Auswärts-Spielers
eintragid: hier nicht relevant
Code:
INSERT INTO `spiele` (`spielid`, `spieleridh`, `spielerida`, `toreh`, `torea`, `eintragid`) VALUES
(1, 1, 0, 10, 9, 1),
(2, 0, 2, 10, 5, 2),
(3, 2, 1, 10, 9, 4);
2. Tabelle benutzer:
Code:
CREATE TABLE `benutzer` (
`benutzerid` tinyint(4) NOT NULL,
`vollname` varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`username` varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`passwort` varchar(40) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`benutzerid`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci
Code:
INSERT INTO `benutzer` (`benutzerid`, `vollname`, `username`, `passwort`) VALUES
(0, 'Anton Ausgefuchst', 'anton82', 'ca46c98a029ee5e7b50d24938a6a0e3d'),
(1, 'Berta Begabt', 'berta_bsc', 'ab31caa6ef5359077abed6b118812034'),
(2, 'Charlotte Clever', 'cClever', '00b86e77b9f76fc1f466555b6af345f8');
Nun schaffe ich es mit folgender SQL-Anfrage eine Rangliste zu generieren, die auf den Heimtoren basiert.
Code:
SELECT b.username, SUM(toreh) AS heimtore
FROM benutzer b
LEFT JOIN spiele s ON s.spieleridh = b.benutzerid
GROUP BY b.benutzerid
ORDER BY heimtore DESC
Ich will in der Aufsummierung allerdings sowohl Heim, als auch Auswärtstore addiert haben. Für die Auswärtstore könnte ich natürlich analog formulieren:
Code:
SELECT b.username, SUM(torea) AS auswtore
FROM benutzer b
LEFT JOIN spiele s ON s.spielerida = b.benutzerid
GROUP BY b.benutzerid
ORDER BY auswtore DESC
Irgendwie komme ich aber nicht drauf, wie ich die Werte in einer Spalte addieren soll. Ich kann die beiden Abfragen ja mit einem UNION verbinden, aber das bringt ja auch nicht weiter, oder?
Kann mir jemand sagen, wie ich die Anfrage stellen müsste?