it-swarm.com.de

Wie verwende ich mehrere LEFT JOINs in SQL?

Ist es möglich, mehrere linke Joins in der SQL-Abfrage zu verwenden?

    LEFT JOIN
        ab 
    ON
        ab.sht = cd.sht

ich möchte hinzufügen, um eine weitere Abfrage wie diese anzufügen? wird es funktionieren?

    LEFT JOIN
        ab AND aa
    ON
        ab.sht = cd.sht
           AND
        aa.sht = cc.sht

Ob das funktioniert?

42
cute

Ja, es ist möglich. Sie benötigen eine ON für jede Join-Tabelle.

LEFT JOIN ab
  ON ab.sht = cd.sht
LEFT JOIN aa
  ON aa.sht = cd.sht

Meine persönliche Formatierungseinstellung für komplexes SQL ist übrigens in http://bentilly.blogspot.com/2011/02/sql-formatting-style.html beschrieben. Wenn Sie viel davon schreiben, wird es wahrscheinlich helfen.

45
btilly

Ja, aber die Syntax unterscheidet sich von der, die Sie haben

SELECT
    <fields>
FROM
    <table1>
    LEFT JOIN <table2>
        ON <criteria for join>
        AND <other criteria for join>
    LEFT JOIN <table3> 
        ON <criteria for join>
        AND <other criteria for join>
23
Daniel DiPaolo

Die erforderliche SQL wird wie folgt aussehen: 

SELECT * FROM cd
LEFT JOIN ab ON ab.sht = cd.sht
LEFT JOIN aa ON aa.sht = cd.sht
....

Ich hoffe es hilft.

10

Sie haben zwei Möglichkeiten, abhängig von Ihrer Tabellenreihenfolge

create table aa (sht int)
create table cc (sht int)
create table cd (sht int)
create table ab (sht int)

-- type 1    
select * from cd
inner join cc on cd.sht = cc.sht
LEFT JOIN ab ON ab.sht = cd.sht
LEFT JOIN aa ON aa.sht = cc.sht

-- type 2
select * from cc
inner join cc on cd.sht = cc.sht
LEFT JOIN ab
LEFT JOIN aa
ON aa.sht = ab.sht
ON ab.sht = cd.sht
0
RichardTheKiwi