viele JOINS zusammen fassen

vodanet

Benutzer
Beiträge
18
Hallo,

ich habe eine Tabelle mit Daten(id, name, vorname, ....) von Personen(personen) und eine mit Aufgaben(plan).
Die Tabelle plan hat neben weiteren Feldern die einzelnen Aufgaben als Feldnamen in denen jeweils die id der Person aus der Tabelle personen gespeichert ist.
Die Aufgaben(-felder) sind im Moment bei 20 und es könnten noch weitere dazu kommen.
Als Rückgabe meiner SQL Abfrage möchte ich die Namen der Personen (und die weiteren aus der plan Tabelle).

Im Moment sieht meine Abfrage so aus:

Code:
SELECT plan.id, CONCAT(v1.vorname,' ',v1.name) as aufgabe1 ,
                CONCAT(v2.vorname,' ',v1.name) as aufgabe2,
                CONCAT(v3.vorname,' ',v1.name) as aufgabe3
from plan
    LEFT JOIN personen v1 ON v1.id= plan.aufgabe1
    LEFT JOIN personen v2 ON v2.id= plan.aufgabe2
    LEFT JOIN personen v3 ON v3.id= plan.aufgabe3
Ich habe es hier mal auf 3 reduziert, aber es sind wesentlich mehr.
Kann man das auch irgendwie eleganter lösen?
Vielen Dank schon mal für eure Hilfe!
 
Werbung:
... und wie verknüpft?
Habe ich dann nicht das gleiche Problem wieder? Es haben ja unterschiedliche Personen die jeweiligen Aufgaben. Also nicht die Aufgaben variieren, sondern die Personen.
Der Gedanke, dass es mal noch mehr Aufgaben werden können ist auch eher langfristig gedacht. Im Normalfall sind es immer gleich viele (20).
 
Ich glaube, ich habe es:

Code:
SELECT test_aufgaben.aufgabe, CONCAT (personen.vorname, " ",personen.name) as name, plan.datum_woche, plan.id from plan
        LEFT join test_aufgaben ON test_aufgaben.plan_id=plan.id
        LEFT JOIN personen ON test_aufgaben.verkid = personen.id
Aber jetzt muss ich alles umstellen :(
Dennoch vielen Dank für deinen Denkanstoß!!!
 
Einen Tipp, wie ich die Daten nun von der "alten" Tabelle am einfachsten (SQL Anweisung) in die "neue" Tabelle bekomme hast du nicht zufällig, oder?
 
Werbung:
Zurück
Oben