• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Logik-Problem - 2 mal ID

Bourbon

Mitglied
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?
 
Werbung:
PHP:
FROM
            groups
           LEFT JOIN account ON (account.userid = groups.creator_ID)

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?
 
Werbung:
PHP:
FROM
            groups
           LEFT JOIN account ON (account.userid = groups.creator_ID)

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
 
Werbung:
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

Code:
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 :)
 
Zurück
Oben