EDIT: Hat sich erledigt! Der Join macht schon das richtige. Ich habe nur die zurückgegebenen Daten falsch interpretiert ...
Hallo!
Ich habe eine SQL-Abfrage, die wie folgt aussieht
Der fett geschriebene Teil soll eigentlich gewährleisten, dass nur jene Events herangezogen werden, die die ID 1 haben. Nur leider scheint diese Auswahl ignoriert zu werden.
Die beteiligten Tabellen sehen wie folgt aus:
Ziel ist es, alle richtigen Tipps (t.tipp = m.ergebnis) anhand einer gegeben Priorität zu summieren (SUM(prioritaet)). Im Interface kann diese Berechnung allerdings auch auf spezifische Events eingeschränkt werden (m.eventid=1), doch dies funktioniert leider nicht. Habe ich vielleicht einen SQL-Denkfehler oder woran könnte das sonst liegen ...
Hallo!
Ich habe eine SQL-Abfrage, die wie folgt aussieht
Code:
SELECT username, SUM(prioritaet) punkte
FROM tipp t, matchtable m, user u
WHERE
t.matchid = m.matchid AND
t.tipp = m.ergebnis AND
u.userid = t.userid AND
m.eventid = 1
GROUP BY t.userid
ORDER BY punkte DESC
Der fett geschriebene Teil soll eigentlich gewährleisten, dass nur jene Events herangezogen werden, die die ID 1 haben. Nur leider scheint diese Auswahl ignoriert zu werden.
Die beteiligten Tabellen sehen wie folgt aus:
Code:
tipp (
userid INT(5) NOT NULL,
matchid INT(6) NOT NULL,
tipp INT(2) UNSIGNED NOT NULL,
prioritaet INT(2) SIGNED NOT NULL,
...
CONSTRAINT FK_tipp_user FOREIGN KEY (userid)
REFERENCES user (userid)
ON UPDATE CASCADE
ON DELETE CASCADE,
CONSTRAINT FK_tipp_match FOREIGN KEY (matchid)
REFERENCES matchtable (matchid)
ON UPDATE CASCADE
ON DELETE CASCADE);
CREATE TABLE user (
userid INT(5) AUTO_INCREMENT NOT NULL,
username VARCHAR(50) NOT NULL UNIQUE
...)
CREATE TABLE matchtable (
matchid INT(6) AUTO_INCREMENT NOT NULL,
matchcode VARCHAR(255) NOT NULL,
eventid INT(5) NOT NULL,
stipulationid INT(5) NULL,
titelmatchid INT(3) NULL,
anmerkungen TEXT NULL,
ergebnis INT(5) NOT NULL DEFAULT 0,
CONSTRAINT PK_match PRIMARY KEY (matchid),
CONSTRAINT FK_match_event FOREIGN KEY (eventid)
REFERENCES event (eventid)
ON UPDATE CASCADE
ON DELETE RESTRICT,
CONSTRAINT FK_match_stipulation FOREIGN KEY (stipulationid)
REFERENCES stipulation (stipulationid)
ON UPDATE CASCADE
ON DELETE SET NULL,
CONSTRAINT FK_match_titelmatch FOREIGN KEY (titelmatchid)
REFERENCES titelmatch (titelmatchid)
ON UPDATE CASCADE
ON DELETE SET NULL)
Ziel ist es, alle richtigen Tipps (t.tipp = m.ergebnis) anhand einer gegeben Priorität zu summieren (SUM(prioritaet)). Im Interface kann diese Berechnung allerdings auch auf spezifische Events eingeschränkt werden (m.eventid=1), doch dies funktioniert leider nicht. Habe ich vielleicht einen SQL-Denkfehler oder woran könnte das sonst liegen ...
Zuletzt bearbeitet: