Logik-Problem - 2 mal ID

Hallo Leute,

gerade sitze ich an einem Problem, bei dem ich gerade nicht die Logik habe, um es zu lösen.

Folgender Sachverhalt:
In einer Abfrage lasse ich mir alle Informationen zu einer Gruppe anzeigen.
Dabei habe ich zwei Spalten, die sich auf ein und denselben Wert beziehen.
Sowohl der Gruppenersteller (user_ID) als auch der Gruppenverwalter (ebenfalls user_ID) sind mit der user_ID aus der Tabelle „account“ verknüpft.

Wie kann ich in der SQL-Abfrage nun festlegen, das ich in der einen Zeile den Nachname vom Ersteller und in der anderen den Nachname vom Verwalter habe?

Binde die Tabelle account 2 Mal ein. Einmal für den Verwalter, einmal für den Ersteller.

[PHP]FROM
groups
LEFT JOIN account ON (account.userid = groups.creator_ID)[/PHP]

So sieht der Join bisher aus, deswegen wirft der mir ja auch den Nachname des Erstellers aus. Ich bräuchte aber den Nachname von groupadmin_ID. Muss ich da jetzt einen 2. Join machen?

Wie sieht denn die DB Struktur aus?

Tabelle groups:
1 - group_ID
2 - creator
3 - administrator
4 - group_status
5 - description

Tabelle accounts:
1 - userid
2 - forename
3 - surname
4 - phonenumber
5 - birthday
6 - email
7 - password (ja, das ist unsicher, wird aber noch geändert)

Ziel:
zeige für Gruppe „1“ den die Beschreibung, sowie die Nachnamen des Erstellers und Verwalters

Noch ein zweites Join wäre doch ein option?

SELECT g.*, acc_creator.surname AS creator_surname, acc_admin.surname AS admin_surname FROM groups AS g LEFT JOIN accounts AS acc_creator ON (g.creator = acc_creator.userid) LEFT JOIN accounts AS acc_admin ON (g.administrator = acc_admin.userid)

Könnte ungefähr so aussehen.

Leider kam ich erst jetzt in die Gelegenheit, es zu testen.

Hat einwandfrei funktioniert und das beste dran: Ich habs verstanden :slight_smile: