![]() |
Datenbank: interbase • Version: 6.5 • Zugriff über: BDE
Idee fehlt zum SELECT und JOIN
Hallo,
habe ein kleines Problem mit einer geänderten Struktur. Bisher habe ich mir mit folgender Query die daten geholt (schematische Darstellung).
SQL-Code:
so nun gibt es eine gänderte situation. es existiert in der datentab3 ein lookup-feld auf irgendeinen datensatz der datentab1.
select diefelder
from baumtab left outer join datentab1 on (baumtab_reckey=datentab1_pkey) left outer join datentab2 on (baumtab_reckey=datentab2_pkey) left outer join datentab3 on (baumtab_reckey=datentab3_pkey) /* hier können je nachdem noch weitere kommen */ where ((baumtab_parkey=123) and ((baumtab_typkey=3) or (itre_typkey=4) or (itre_typkey=5) )) order by baumtab_sortfld,baumtab_pkey wenn ich nun das folgende darauf loslasse, dann bekomme ich ein prob, weil die ergebnismenge sich dann in den entsprechenden zeilen mischt oder nil ist. ist aber die zusätzliche definition 'left outer join datentab1 on (baumtab_reckey=datentab1_pkey)' nicht vorhanden, funzt es mit dem lookup!
SQL-Code:
wie kann man das umschreiben, dass für die definition der zeile "left outer join datentab1 on ((datentab1_pkey=datentab3_datentab1))" entsprechedn die ganze Tabelle datentab1 durchsucht wird!
select diefelder
from baumtab left outer join datentab1 on (baumtab_reckey=datentab1_pkey) left outer join datentab2 on (baumtab_reckey=datentab2_pkey) left outer join datentab3 on (baumtab_reckey=datentab3_pkey) left outer join datentab1 on ((datentab1_pkey=datentab3_datentab1)) /* hier ist das prob! */ /* hier können je nachdem noch weitere kommen */ where ((baumtab_parkey=123) and ((baumtab_typkey=3) or (baumtab_typkey=4) or (baumtab_typkey=5) )) order by baumtab_sortfld,baumtab_pkey steh da gerade voll auf dem schlauch! danke schn mal und hoffe es ist klar was ich meine, ansonsten fragen... |
Re: Idee fehlt zum SELECT und JOIN
Die Bedingungen waren von Anfang an falschrum gestellt, versuchs mal so:
SQL-Code:
select diefelder
from baumtab left outer join datentab1 on datentab1_pkey=baumtab_reckey left outer join datentab2 on datentab2_pkey=baumtab_reckey left outer join datentab3 on datentab3_pkey=baumtab_reckey left outer join datentab1 on datentab3_datentab1=datentab1_pkey ... |
Re: Idee fehlt zum SELECT und JOIN
bringt nix, gleiches prob wie vorher, ist unerheblich ob ich die verkleichsfelder umstelle!
|
Re: Idee fehlt zum SELECT und JOIN
Wenn man die gleiche Tabelle merhfach joint würde ich unbedingt Aliase verwenden.
SQL-Code:
Die Reihenfolge der Felder beim join ist tatsächlich egal.
select * from TabelleA
join TabelleB B1 on FeldA = B1.FeldB join TabelleB B2 on FeldA = B2.FeldB |
Re: Idee fehlt zum SELECT und JOIN
das ist nicht das prob, es ist gesichert, dass die felder explizit zugeordnet werden können. die ergebnismenge ist das prob. durch den zweiten join auf die selbe tabelle, werden die daten vermischt!
|
Re: Idee fehlt zum SELECT und JOIN
Du mußt die 2. Auswahl per Union hinzufügen.
|
Re: Idee fehlt zum SELECT und JOIN
wenn ich das mit union zusammenführe, dann muss ich die ganzen weiterbehandlungsmethoden umschreiben :? und es geht nicht, da bei union die felder vom gleichen datenyp sein müssen, was sie nicht sind, jede tabelle hat nicht wirklich die gleichen datentypen!
gibt es noch andere vorschläge? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:54 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 by Thomas Breitkreuz