Das Problem bei UNION ist das die Struktur der einzelnen SELECT-Anweisungen identisch sein müssen.
Code:
...
LEFT JOIN TabelleTyp1 ON MainTabelle.ID = TabelleTyp1.ID AND TabelleAllgemein.Typ = 1
...
LEFT JOIN TabelleTyp2 ON MainTabelle.ID = TabelleTyp1.ID AND TabelleAllgemein.Typ = 2
..
LEFT JOIN TabelleTyp3 ON MainTabelle.ID = TabelleTyp1.ID AND TabelleAllgemein.Typ = 3
...also das oben funktioniert nicht, aber sowas ähnliches habe ich mir vorgestellt wäre vielleicht möglich, so daß man unter bestimmten Voraussetzungen eine Tabelle "joint" und andere nicht mit einbezieht.