Ich hab es erstmal so gelöst, aber gibt es nix besseres?

with x as (select distinct key2, feld from datei2)
select a.f1, c.f3 from datei1 a
left outer join x on a.key1 = x.key2
left outer join datei3 c on x.feld = c.feld

Danke