Abfrage aus 2 Tabellen

Hasibauz

Grünschnabel
hallo,

ich stehe gerade etwas am schlauch.
für einen wettbewerb gilt es eine rangliste zu erstellen. pro event bekommt man punkte, die für jede userid addiert und gereiht nach punktezahl und nach gruppe unterteilt ausgegeben werden sollen.

tabelle 1: users
userid, name, gruppe

tabelle 2: events
id, userid, punkte


wie sieht die abfrage dafür aus? ich bin für jeden tipp dankbar.

lg
 
Salü Hasibauz

Du kannst einen JOIN über die Tabellen machen:

Code:
SELECT u.name FROM users AS u JOIN events AS e ON u.userid=e.userid WHERE 1;
 
Weiß nicht, ob es klappt, ob alles notwendig ist und ob es nicht auch eleganter geht, aber ich würde es so versuchen:

Code:
SELECT
        u.userid AS userid,
        u.name   AS name,
        u.gruppe AS gruppe,
        a.punkte AS punkte
FROM
    (
        SELECT
                e.userid      AS userid,
                SUM(e.punkte) AS punkte       
        FROM
                events AS e
        GROUP BY
                e.userid
    ) AS a
LEFT JOIN
        users AS u
    ON
        a.userid = u.userid
ORDER BY
        u.gruppe ASC,
        a.punkte DESC,
        u.name   ASC,
        u.userid ASC

Ungetestet.
 
Zurück