![]() |
Datenbank: (oracle) • Version: 9,10 • Zugriff über: egal
Ansi Join syntax
Hallo zusammen,
aus aktuellem Anlass beschäftige ich mich mit den Ansi Joins. Irgendwie schaffe ich es nicht da eine vernünftige Unterlage zu finden. Sobald es etwas über inner Join hinausgeht hüllen alle Internet-Seiten und Handbücher in Schweigen
Code:
wie setze ich dies in Ansi Joins um?
Select ...
From T1,T2,T3,T4 where T1.key=T2.Key and T1.Key=T3.Key(+) and T3.Key=T4.Key(+) and T1.Wert like 'Copper%'
Code:
Und wie macht man es hiermit?
Select ...
From T1 Join T2 on (T1.Key=T2.Key) left Join T3 on (T1.Key=T3.Key) left Join T4 on (T3.Key=T4.Key) where T1.Wert like 'Copper%'
Code:
select ...
from T1,(select MyKey from T2 where T2.Wert=0) T2 where T1.Key=T2.Mykey
Code:
Gruß
select ...
from T1 Join (select MyKey from T2 where T2.Wert=0) T2 on (T1.Key=T2.Mykey) K-H |
AW: Ansi Join syntax
Code:
ist eine Oracle Kurzschreibweise für einen OUTER JOIN (in deinem Fall also ein RIGHT OUTER JOIN). Man kann das aber immer nur auf eine Seite der Zuweisung schreiben (also nicht einen FULL OUTER JOIN abbilden, indem man
(+)
Code:
schreiben würde).
and T1.Key(+) = T3.Key(+)
|
AW: Ansi Join syntax
Hi!
Also ungetestet könnte es so aussehen:
Code:
SELECT *
FROM T1 INNER JOIN T2 ON(T1.key=T2.Key) RIGHT JOIN T3 ON(T1.key=T3.Key), T3 RIGHT JOIN T4 ON(T3.Key=T4.Key) WHERE T1.Wert like 'Copper%'
Code:
SELECT *
FROM T1 INNER JOIN T2 ON (T1.Key=T2.Mykey) WHERE T2.Wert = 0 |
AW: Ansi Join syntax
Ich würde das T3 auf der einen Zeile noch rausschmeissen
Code:
SELECT *
FROM T1 INNER JOIN T2 ON(T1.key=T2.Key) RIGHT JOIN T3 ON(T1.key=T3.Key) RIGHT JOIN T4 ON(T3.Key=T4.Key) WHERE T1.Wert like 'Copper%' Zitat:
Code:
Das Konstrukt
select T1, t2.MyKey
from T1 join (select MyKey from T2 where T2.Wert=0) T2 on t1.key= t2.mykey
Code:
kann bei Verwendung des Gleichheitsoperators übrigens zu Fehlern führen, und ist somit nicht 100% äquivalent zu einem Join. Das liegt an der Auswertereihenfolge.
select * from t1,t2,t3 where t1.ID = t2....
|
AW: Ansi Join syntax
Zitat:
Ich finde grennies Version sieht seltsam aus aber verleitet nicht zu Mißverständnissen? Zitat:
Gruß K-H |
AW: Ansi Join syntax
Kommas haben in einer JOIN-Klausel nichts verloren, auch mein Beispiel war falsch (ein Komma zuviel)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz