![]() |
Datenbank: XXX • Version: XXX • Zugriff über: SQL
Mehrere SQL Join-Anweisungen in einem Statement
HI DP´ler
Folgende Problematik beschäftigt mich: Ich habe eine Tabelle (AGF_KBU) in der verschiedenste Spalten mit Nummern stehen (z.B: Periode_Nr, Abrechnungs_Nr, Laufende_Nr usw...). Die jeweiligen Bezeichnungen der Spalten(Periode_Bezeichnung, Abrechnungs_Bezeichnung, usw..) stehen aber jeweils in extra Tabellen. Mein Problem ist das ich nich tweis wie ich sämtliche INNER JOINS in ein SQL-Statement bekomm. Hab es nun Beispielhaft für eine Verknüpfung gemacht:
Delphi-Quellcode:
(in der Tabelle agf_kbu steht die Perioden_Nr, in agf_per die Bezeichnung der entsprechenden Nr)
Select t2.per_zeitraum from (agf_kbu t1 inner join agf_per t2 on t1.KBU_Periode = t2.PER_Periode)
Die große Frage ist nun wie ich ca. 15 bis 20 solcher SQL-Abfragen in einer Einzigen verbinden kann. Mir fällt im moment garnix mehr ein^^ |
AW: Mehrere SQL Join-Anweisungen in einem Statement
Einfach hintereinander schreiben.
SQL-Code:
SELECT * FROM Tab1
JOIN Tab2 ON Bedingung JOIN Tab3 ON Bedingung JOIN Tab4 ON Bedingung --usw. usf. |
AW: Mehrere SQL Join-Anweisungen in einem Statement
oder etwas klassischer:
SQL-Code:
SELECT * FROM Tab1, Tab2, Tab3, TabX
WHERE Tab1.Spalte1 = Tab2.Spalte AND Tab1.Spalte2 = Tab3.Spalte AND Tab1.Spalte3 = TabX.Spalte |
AW: Mehrere SQL Join-Anweisungen in einem Statement
Da werden Outer Joins aber schwieriger, AFAIK gehört das (+) nicht zum SQL-Standard.
|
AW: Mehrere SQL Join-Anweisungen in einem Statement
Beides funktioniert ganz wunderprächtig, könnt ihr mir noch sagen wo ich den left join ansetzen muss das mir von meiner grund tabelle agf_kbu ALLE Daten angezeigt werden? Auch die, die nicht den JOIN-Bedingungen entsprechen.
Edit: Über all LEFT vorhängen habs schon raus^^ |
AW: Mehrere SQL Join-Anweisungen in einem Statement
Ein (INNER) JOIN liefert nur die Daten mit Entsprechungen, ein LEFT/RIGHT (OUTER) JOIN liefert alle Daten, wobei dann die nicht vorhandenen Entsprechungen NULL-Werte liefern. Da ich Deine DB-Struktur nicht kenne, kannst Du mal testhalber alle JOINs in LEFT JOINs ändern. Anschließend musst Du selbst entscheiden, wo Du nur Entsprechungen haben willst.
|
AW: Mehrere SQL Join-Anweisungen in einem Statement
Hab aus den JOIN´s lauter LEFT JOIN´s gemacht und seh quasi nun auch alle leeren Felder aber das ist durchaus gewünscht so.^^
|
AW: Mehrere SQL Join-Anweisungen in einem Statement
Dann ist ja alles paletti :)
|
AW: Mehrere SQL Join-Anweisungen in einem Statement
Zitat:
Tab1.idFld*= Tab2.idFld -- MS Tab1.idFld(+)= Tab2.idFld -- Oracle Was Kommentare angeht, gibt es ja auch unterschiedliche Ansätze. Gruß K-H |
AW: Mehrere SQL Join-Anweisungen in einem Statement
Dann doch lieber die JOIN-Syntax, damit können alle mir bekannten DBMS umgehen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:10 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