Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Idee fehlt zum SELECT und JOIN (https://www.delphipraxis.net/92343-idee-fehlt-zum-select-und-join.html)

ibp 18. Mai 2007 09:42

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:
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
so nun gibt es eine gänderte situation. es existiert in der datentab3 ein lookup-feld auf irgendeinen datensatz der datentab1.
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:
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
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!

steh da gerade voll auf dem schlauch!

danke schn mal und hoffe es ist klar was ich meine, ansonsten fragen...

mkinzler 18. Mai 2007 09:49

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
...

ibp 18. Mai 2007 10:04

Re: Idee fehlt zum SELECT und JOIN
 
bringt nix, gleiches prob wie vorher, ist unerheblich ob ich die verkleichsfelder umstelle!

mquadrat 18. Mai 2007 10:06

Re: Idee fehlt zum SELECT und JOIN
 
Wenn man die gleiche Tabelle merhfach joint würde ich unbedingt Aliase verwenden.

SQL-Code:
select * from TabelleA
  join TabelleB B1 on FeldA = B1.FeldB
  join TabelleB B2 on FeldA = B2.FeldB
Die Reihenfolge der Felder beim join ist tatsächlich egal.

ibp 18. Mai 2007 10:12

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!

mkinzler 18. Mai 2007 10:15

Re: Idee fehlt zum SELECT und JOIN
 
Du mußt die 2. Auswahl per Union hinzufügen.

ibp 18. Mai 2007 10:51

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 12:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz