Vinzenz Mai: LEFT JOIN mit WHERE darstellen

Beitrag lesen

Hallo,

kann mir bitte jemand sagen, wie ich einen LEFT JOIN mit WHERE darstellen kann?

abhängig vom verwendeten SQL-Dialekt kann es eine veraltete und nicht empfehlenswerte implizite Join-Syntax geben. Sollte das Datenbankmanagementsystem (DBMS) die explizite OUTER-JOIN-Syntax aus SQL-92 unterstützen, so verwendet man klar die explizite OUTER-JOIN-Syntax - so wie es grundsätzlich eine sehr gute Idee ist, explizite JOIN-Syntax zu verwenden.

select * from tab_a a
left join tab_b b on b.col_1 = a.col_1
left join tab_c c on c.col_1 = a.col_2

  
Transact-SQL (MS SQL-Server und Sybase) unterstützten [1] implizite Outer-Joins mit \*=:  
  
~~~sql
SELECT  
    *  
FROM  
    a,  
    b,  
    c  
WHERE  
    a.col1 *= b.col1  
AND  
    a.col1 *= c.col1  

Bitte beachte, dass die Reihenfolge der Operanden in der WHERE-Klausel entscheidend ist und nicht vertauscht werden darf. Soweit ich mich erinnere, steht diese Syntax bestenfalls (ich finde schlimmstenfalls) in einem Kompatibilitätsmodus zur Verfügung.

Warum möchtest Du die wunderbar einfache und klare, explizite OUTER-JOIN-Syntax nicht verwenden?

Freundliche Grüße

Vinzenz