... wenn wir schon bei der akademischen Diskussion über UNION gelandet sind:
UNION ist (fast) das einzige Konstrukt mit dem man Felder aus unterschiedlichen Quelltabellen im selben Feld der Zieltabelle darstellen kann.
Beispiel:
select name, ort, strasse
from kunde
union
select k.name, a.ort, a.strasse
from kunde k
join adress a
on ...

fast insofern, weil hier partiell ein subselect günstiger sein könnte.
Beispiel:
select k.name, (coalesce((select a.ort from adress a
where a.kdnr = a.kdnr), k.ort)
from kunde k

D*B
Zitat Zitat von Fuerchau Beitrag anzeigen
Die bringst du ganz genauso mit "left join" dazu, wobei du allerdings keine einfache where-Bedingung auf diese Datei machen darfst. Dies führt automatisch zu einem Inner-Join, also:

select ... from FileA A
left join FileB B on a.key=b.key
where a.feld = ... and b.feld=...

ist identisch zu

select ... from FileA A
inner join FileB B on a.key=b.key
where a.feld = ... and b.feld=...

um trotzdem Left-Joins abzufragen ist ein Konstrukt erforderlich:

where ... (b.feld = ... or b.feld is null) ...

Ein Union ist da was ganz anderes:

select a, b, c from DateiA
union [all]
select a, b, c from DateiB

Die Anzahl der Felder beider Select's muss identisch sein, weigehend auch der Ergebnistyp.