Vielleicht sehe ich das Problem nicht, aber warum machst du nicht einfach einen SELECT DISTINCT?

Code:
select DISTINCT a.f1, c.f3 from datei1 a
left outer join datei2 b on a.key1 = b.key2
left outer join datei3 c on b.feld = c.feld
Perfomancemäßig könnte es sein, dass die Variante mit der Common Table Expression bzw. dem verschachtelten Sub-Select in der From-Anweisung ein schnelleres Ergebnis liefern.
Das müsste man über Visual Explain analysieren.

Birgitta