AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Mehrere SQL Join-Anweisungen in einem Statement
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrere SQL Join-Anweisungen in einem Statement

Ein Thema von Ascuriah · begonnen am 21. Okt 2010 · letzter Beitrag vom 25. Okt 2010
Antwort Antwort
Seite 1 von 3  1 23      
Ascuriah

Registriert seit: 6. Okt 2010
52 Beiträge
 
#1

Mehrere SQL Join-Anweisungen in einem Statement

  Alt 21. Okt 2010, 13:57
Datenbank: XXX • Version: XXX • Zugriff über: SQL
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:
Select t2.per_zeitraum from (agf_kbu t1 inner join agf_per t2 on t1.KBU_Periode = t2.PER_Periode) (in der Tabelle agf_kbu steht die Perioden_Nr, in agf_per die Bezeichnung der entsprechenden Nr)

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^^
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Mehrere SQL Join-Anweisungen in einem Statement

  Alt 21. Okt 2010, 14:02
Einfach hintereinander schreiben.
SQL-Code:
SELECT * FROM Tab1
JOIN Tab2 ON Bedingung
JOIN Tab3 ON Bedingung
JOIN Tab4 ON Bedingung
--usw. usf.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Mehrere SQL Join-Anweisungen in einem Statement

  Alt 21. Okt 2010, 14:27
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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Mehrere SQL Join-Anweisungen in einem Statement

  Alt 21. Okt 2010, 14:29
Da werden Outer Joins aber schwieriger, AFAIK gehört das (+) nicht zum SQL-Standard.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Ascuriah

Registriert seit: 6. Okt 2010
52 Beiträge
 
#5

AW: Mehrere SQL Join-Anweisungen in einem Statement

  Alt 21. Okt 2010, 14:53
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^^
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Mehrere SQL Join-Anweisungen in einem Statement

  Alt 21. Okt 2010, 14:56
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Ascuriah

Registriert seit: 6. Okt 2010
52 Beiträge
 
#7

AW: Mehrere SQL Join-Anweisungen in einem Statement

  Alt 21. Okt 2010, 15:24
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.^^
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Mehrere SQL Join-Anweisungen in einem Statement

  Alt 21. Okt 2010, 15:28
Dann ist ja alles paletti
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#9

AW: Mehrere SQL Join-Anweisungen in einem Statement

  Alt 21. Okt 2010, 15:45
Da werden Outer Joins aber schwieriger, AFAIK gehört das (+) nicht zum SQL-Standard.
Da, was den Standard angeht, jeder Hersteller sehr individuelle Vorstellungen hat, empfehle ich hier Hanbuchstudium. Zumindestens MS und Oracle bieten hier so etwas:

Tab1.idFld*= Tab2.idFld -- MS
Tab1.idFld(+)= Tab2.idFld -- Oracle

Was Kommentare angeht, gibt es ja auch unterschiedliche Ansätze.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Mehrere SQL Join-Anweisungen in einem Statement

  Alt 21. Okt 2010, 15:53
Dann doch lieber die JOIN-Syntax, damit können alle mir bekannten DBMS umgehen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:08 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