bakterius
Benutzer
- Beiträge
- 6
Hallo zusammen
Ich steh mal wieder auf dem Schlauch und komme nicht weiter....
Meine DB sieht grob so aus:
Tabelle users (id, name, vorname)
Tabelle career (id, user_id, cat_id, datum, rank_id).
Tabelle ranks (id, name, kurzname, rang)
Mit dem SQL Statement kriege ich alle User aus der Tabelle users.
Da in der Tabelle career jeweils mit der cat_id alle Beförderungen stehen und das pro User auch mehrere sein können, werden nun natürlich alle Daten zusammen ausgegeben.
Das sieht dann etwa so aus:
Lt 40 Daisy Duck
Wm 30 Daisy Duck
Wm 30 Micky Maus
Kpl 20 Daisy Duck
Kpl 20 Daniel Düsentrieb
Kpl 20 Micky Maus
Sdt 10 Daisy Duck
Sdt 10 Daniel Düsentrieb
Sdt 10 Micky Maus
Ausgeben will ich aber nur:
Lt 40 Daisy Duck
Wm 30 Micky Maus
Kpl 20 Donald Duck
Die Ränge lassen sich aus der Tabelle ranks über das Feld rang sortieren. Irgendwie muss ich die Daten noch so filtern, dass ich nur noch ein Datensatz pro User bekomme, jeweils denjenigen mit dem höchsten Rang.
Wer hilft mir auf die Sprünge?
Ich steh mal wieder auf dem Schlauch und komme nicht weiter....
Meine DB sieht grob so aus:
Tabelle users (id, name, vorname)
Tabelle career (id, user_id, cat_id, datum, rank_id).
Tabelle ranks (id, name, kurzname, rang)
Mit dem SQL Statement kriege ich alle User aus der Tabelle users.
Code:
SELECT ranks.kurzname AS RangKurzname, ranks.rang, users.vorname, users.name FROM users
LEFT JOIN career ON career.user_id = users.id AND career.cat_id =3
LEFT JOIN ranks ON career.rank_id = ranks.id
WHERE users.deleted_at IS NULL
ORDER BY ranks.rang DESC, users.name ASC
Da in der Tabelle career jeweils mit der cat_id alle Beförderungen stehen und das pro User auch mehrere sein können, werden nun natürlich alle Daten zusammen ausgegeben.
Das sieht dann etwa so aus:
Lt 40 Daisy Duck
Wm 30 Daisy Duck
Wm 30 Micky Maus
Kpl 20 Daisy Duck
Kpl 20 Daniel Düsentrieb
Kpl 20 Micky Maus
Sdt 10 Daisy Duck
Sdt 10 Daniel Düsentrieb
Sdt 10 Micky Maus
Ausgeben will ich aber nur:
Lt 40 Daisy Duck
Wm 30 Micky Maus
Kpl 20 Donald Duck
Die Ränge lassen sich aus der Tabelle ranks über das Feld rang sortieren. Irgendwie muss ich die Daten noch so filtern, dass ich nur noch ein Datensatz pro User bekomme, jeweils denjenigen mit dem höchsten Rang.
Wer hilft mir auf die Sprünge?