Vinzenz Mai: join unmöglich?

Beitrag lesen

Hallo Christian,

Ja, kann man. Du musst dem DBMS weismachen, dass es inwirklichkeit 3 Tabellen verknüpft:

Tab1 (ID) ----> (ID1) Tab2 (ID2) ----> (ID) Tab1

Das kannst Du machen, indem Du unterschiedliche Aliases für die Tabelle Tab1 definierst und diese mehrfach im Join auftauchen lässt.

Mit JOIN-Syntax liest sich Dein SQL-Statement einfach schöner :-)

SELECT  
  Tab2.ID,  
  Tab1_1.Name as Name1,    -- Tab1_1 ist der erste Alias für Tab1  
  Tab1_2.Name as Name2     -- Tab1_2 ist der zweite Alias für Tab1  
FROM  
   Tab1 Tab1_1             -- hier wird der erste Alias definiert  
INNER JOIN Tab2  
ON Tab2.ID1 = Tab1_1.ID    -- erste Verknüpfung  
INNER JOIN Tab1 Tab1_2     -- hier wird der zweite Alias definiert  
ON Tab2.ID2 = Tab1_2.ID;   -- zweite Verknüpfung

Freundliche Grüße

Vinzenz

Aus Kompatibilitätsgründen zu Oracle habe ich AS zwischen Tabellennamen und Tabellenalias gestrichen.