ray: LEFT JOIN mit WHERE darstellen

Hallo,

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

Bsp.:

  
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  

Vielen Dank,
Gruss Ray

  1. echo $begrüßung;

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

    Mir ist nur Oracle bekannt, das einen Outer Join mit WHERE hinbekommt. Dazu muss man - wenn ich mich recht erinnere - hinter den einen Spaltennamen ein (+) notieren. Andererseits war das zumindest in älteren Versionen die einzig mögliche Syntax für einen Outer Join.

    echo "$verabschiedung $name";

    1. yo,

      Andererseits war das zumindest in älteren Versionen die einzig mögliche Syntax für einen Outer Join.

      bis oracle in der 8er version, ab 9i gab es dann endlich die explizite schreibweise....

      Ilja

  2. 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