![]() |
AW: Firebird: SQL JOIN gesucht
Zitat:
|
AW: Firebird: SQL JOIN gesucht
Wenn man beide Tabellen bedingungslos zusammenführen will mag das eine Lösung sein.
Aber es geht ja schon um eine Beziehung zwischen beiden Tabellen. Nur das diese bisher nicht via Index Feld gelößt ist. Sondern ein Flag in einem Feld abgelegt ist dessen Wert festlegt welche Sätze aus der anderen Tabelle gebraucht werden. |
AW: Firebird: SQL JOIN gesucht
Zitat:
Mir ging es nur darum zu Erfahren, was der Cross Join anders mach (in der Situation) als der Left Join und ob ich beim Left Join auch das von IBExpert beschriebene Problem habe, dass erst so ein riesiges Kreuzprodukt aufgebaut wird, bevor die Where-Bedingungen greifen, oder ob das die Datenbank dann schon optimieren kann und erst mal die Datensätze nimmt, die laut Where Bedingung aus Tabelle T1 kommen bevor dann das Ganze T2 dazu gejoined wird. |
AW: Firebird: SQL JOIN gesucht
Zu Oraclezeiten (20+ Jahre her) hätte meine Lösung dann eher so ausgesehen:
SQL-Code:
Erst in einem Select maximal einschränken und dann das Ergebnis dieser Einschränkung mit den anderen Tabellen joinen.
select T1a.*,T2.*
from (select * from T1 where T1.Feld1 = 'Irgendwas') T1a Left Join T2 On 1=1 (Hat manchen Tag Laufzeit in Produktivsystemen eingespart). |
AW: Firebird: SQL JOIN gesucht
Das Einschränken würde ja über einen CTE auch funktionieren, welche Firebird unterstützt. Wie gesagt, beid er einen Tabelle geht es um max. 10 Einträge.
|
AW: Firebird: SQL JOIN gesucht
Ich versuche es mal so zu formulieren, wie ich es verstanden habe:
Die im ersten Post gezeigte Query listet also jedes Property genau so viel mal auf wie es Lieferadressen gibt. Also in der Art: Property1, Lieferadresse1Dann brauchst du auch keine weiteren Maßnahmen ergreifen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 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