LEFT JOIN mit WHERE darstellen
ray
- datenbank
0 dedlfix0 Ilja
0 Vinzenz Mai
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
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";
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
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