ich habe 3 ( Firmen, Gruppen, Mitarbeiter) tabellen die nach folgendem Muster aufgebaut sind
ID , Name, Vorname, Strasse, ....
und eine tabelle aktionen
AID
Utyp ENUM('F','G','M') // Angabe welche der obrigen Tabellen zugeordnet ist
Uid // Id in der obrigen Tabelle
Nun möchte ich eine Ausgabe
AID, Utyp, Name, Vorname, Strasse
Code:
select
AId,
Utyp,
if(a.Utyp='M',(select m.name from mitarbeiter m where m.ID=a.Uid),
if(a.Utyp='F' , (select f.name from firmen f where f.ID=a.Uid),
if(a.eUtyp='G',(select g.name from gruppen g where g.ID=a.Uid))))
as name,
if(a.Utyp='M',(select m.vorname from mitarbeiter m where m.ID=a.Uid),
if(a.Utyp='F',(select f.vorname from firmen f where f.ID=a.Uid),
if(a.eUtyp='G',(select g.vorname from gruppen g where g.ID=a.Uid))))
as vorname
if(a.Utyp='M',(select m.strasse from mitarbeiter m where m.ID=a.Uid),
if(a.Utyp='F',(select f.strasse from firmen f where f.ID=a.Uid),
if(a.eUtyp='G',(select g.strasse from gruppen g where g.ID=a.Uid))))
as strasse
from aktionen
gibt es eine möglichkeit die Abfrage nach name, vorname, strasse
in einer subquery zusammen zufassen