Thema: Delphi JOINs

Einzelnen Beitrag anzeigen

Dejan Vu
(Gast)

n/a Beiträge
 
#5

AW: JOINs

  Alt 25. Aug 2014, 14:46
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.
  Mit Zitat antworten Zitat