Alternativ könnte man die beiden Artikeltabellen (Tabelle2 und Tabelle3) zu einer Tabelle kombinieren (mit UNION) und dann einen JOIN verwenden
Code:
select *
from tabelle1 h
join (
select ArtikelNr, Groesse, Menge from tabelle2
union
select ArtikelNr, Groesse, Menge from tabelle3
) alleArtikel on h.ArtikelNr = alleArtikel.ArtikelNr
Noch besser wäre es vielleicht, die unschöne Aufteilung in zwei Artikeltabellen über eine View zu verbergen
Code:
create View AlleArtikel as
select ArtikelNr, Groesse, Menge from tabelle2
union
select ArtikelNr, Groesse, Menge from tabelle3
go
select *
from tabelle1 h
join AlleArtikel a on a.ArtikelNr = h.ArtikelNr
Klar, wenn befürchten muss, das nicht alle Artikel der Tabelle1 in den anderen Tabellen sind, nimmt man 'LEFT JOIN' statt 'JOIN'. Tipp: Einen Dummyartikel 'NULL' anlegen, alle nicht vorhandenen Artikel der Tabelle1 durch NULL ersetzen und dann einen INNER JOIN verwenden. Ist schneller und die referenzielle Integrität ist gewahrt.