Hallo Robert,
ich glaube, einem Subselect in einer WHERE-Expression, also so wie hier:
WHERE ...
AND r.Erstelldatum > (SELECT r2.Erstelldatum
FROM table2 r2 JOIN table1 rz2 ON rz2.RID = r2.RID
WHERE rz2.MID = myMID AND
r2.Bart = 'R' AND r2.Rart = 'R' AND
r2.St = 0 AND r2.D = 1)
kann man keinen Alias zuweisen.
Und man kann ihn auch nicht als SUBSELECT in die SELECT-Liste klemmen, ihm dort einen Alias geben und dann im WHERE darauf Bezug nehmen.
Da der Subselect auf eine Spalte aus dem Hauptselect Bezug nimmt, glaube ich auch nicht, dass man den Subselect sinnvoll loswerden kann. Oder? Hm.
SELECT rz.RID, rz.MID
FROM table1 rz
JOIN table2 r ON r.RID = rz.RID AND r.BArt = 'R'
JOIN table1 rz2 ON rz2.MID = rz.MID
JOIN table2 r2 ON r2.RID = rz2.RID AND r2.BArt = 'R'
WHERE r.RArt = 'A'
AND r2.RArt = 'R'
AND r2.St = 0
AND r2.D = 1
AND r.Erstelldatum > r2.Erstelldatum
Ob das lesbarer ist... Muss Jörgbeurteilen. Und man müsste es auch noch EXPLAINen, um zu schauen, ob es gleich effizient ist.
Rolf
--
sumpsi - posui - obstruxi
sumpsi - posui - obstruxi