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 2 von 3     12 3      
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#11

AW: Mehrere SQL Join-Anweisungen in einem Statement

  Alt 21. Okt 2010, 15:55
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
möcht ich grad mal meine Senf dazu geben
OT on
Die klassische Art ist meiner Meinung nach besser lesbar
OT off


Gruss KHH
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

AW: Mehrere SQL Join-Anweisungen in einem Statement

  Alt 21. Okt 2010, 16:03
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
möcht ich grad mal meine Senf dazu geben
OT on
Die klassische Art ist meiner Meinung nach besser lesbar
OT off


Gruss KHH
Ist wohl Geschmackssache, obwohl ich hier schon Beispiele gesehen habe, die auch ordentlich aussahen.

@DeddyH
Vielleicht heute, vor ein paar Jahren war das nicht so, darum bin ich immer noch "klassiker"

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

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

AW: Mehrere SQL Join-Anweisungen in einem Statement

  Alt 25. Okt 2010, 08:54
Moin Moin

Hab grad die beiden Methoden nochmal getestet und bin auf folgendes Problem gestoßen. Wenn ich in dem SELECT * FROM table1, table2, usw... bestimmte Tabellen aus meiner DB in die FROM Angabe schreibe erhält meine Ergebnismenge jeden Datensatz immer mehrmals und ich habe keine Ahnung wie das zu stande kommt.

Hier noch ma der Bsp-Code:
Code:
SELECT * FROM AGF_KBU t1, AGF_PER t2, AGF_BUKR t3, AGF_KSTK t4, AGF_SAK t5
      WHERE t1.KBU_Periode = t2.PER_Periode
      AND t1.KBU_Bukr_Nummer = t3.BUKR_Nummer
Ohne die t5 funktionierts einwandfrei, sobald ich diese hinzufüge nicht mehr (und das is mit einigen Spalten so)
Ist ADS da irgendwie beschränkt oder müssen die Properties der Tables gewissen Vorraussetzungen erfüllen? (Waren jetzt meine ersten Ideen)

mfg
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Mehrere SQL Join-Anweisungen in einem Statement

  Alt 25. Okt 2010, 08:59
Du hast ja auch nicht definiert, wie die Tabelle 5 in Beziehung zu den anderen steht, somit erhältst Du das kartesische Produkt der Datensätze dieser Tabelle zu denen des JOINs.
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
 
#15

AW: Mehrere SQL Join-Anweisungen in einem Statement

  Alt 25. Okt 2010, 09:05
Hm ok aber das hab ich bei Tabelle 4 ja auch nicht getan und mit der gehts ganz normal, daher wunderts mich
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Mehrere SQL Join-Anweisungen in einem Statement

  Alt 25. Okt 2010, 09:11
Vielleicht gibt es nur einen Datensatz in Tabelle 4?
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
 
#17

AW: Mehrere SQL Join-Anweisungen in einem Statement

  Alt 25. Okt 2010, 09:16
Nope, da sind einige drin.

Jetzt bekomm ich noch nen Invalid Operator Fehler bei meinem Code:

Code:
SELECT kbu_key, kbu_sts, sts_bezeichnung FROM AGF_KBU t1, AGF_PER t2, AGF_BUKR t3, AGF_STS t4
      WHERE t1.KBU_Periode = t2.PER_Periode
      AND t1.KBU_Bukr_Nummer = t3.BUKR_Nummer
      AND t1.KBU_STS = t4.STS_Bezeichnung
Ach ja wenn ich die JOIN-Syntax verwende funktioniert es besser als so^^
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Mehrere SQL Join-Anweisungen in einem Statement

  Alt 25. Okt 2010, 09:18
Sind die Feldbezeichner eindeutig? Ansonsten schreib einmal den Alias davor (in der SELECT-Klausel).
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
 
#19

AW: Mehrere SQL Join-Anweisungen in einem Statement

  Alt 25. Okt 2010, 09:34
Hm ne daran liegts wohl auch ned, hm kp, ich werds nu mit der JOIN Syntax umsetzen da klappts wesentlich besser
  Mit Zitat antworten Zitat
Ascuriah

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

AW: Mehrere SQL Join-Anweisungen in einem Statement

  Alt 25. Okt 2010, 09:47
So hab das ganze nu auf JOIN-Syntax umgemünzt nur leider im Endeffekt das selbe Problem (war ja eigentlich auch zu erwarten)

Code:
SELECT t1.kbu_key, t2.per_zeitraum, t3.bukr_bez, t4.sts_bezeichnung, t5.sak_kbez, t6.kst_kbez, t7.bis_langtext FROM AGF_KBU t1 
                    LEFT JOIN AGF_PER t2  ON t1.KBU_Periode = t2.PER_Periode
                 LEFT JOIN AGF_BUKR t3 ON t1.KBU_Bukr_Nummer = t3.BUKR_Nummer
                 LEFT JOIN AGF_STS t4  ON t1.KBU_Sts = t4.STS_Schluessel
                 LEFT JOIN AGF_SAK t5  ON t1.KBU_Konto = t5.SAK_Konto
                 LEFT JOIN AGF_KSTK t6 ON t1.KBU_Kost1 = t6.KST_Kostenstelle
                 LEFT JOIN AGFA_BIS t7 ON t5.SAK_iBilanzrelevant = t7.BIS_Zeile
selbst wenn ich alles mit Alias versehe ensteht durch die LETZTE ZEILE der Effekt das alle Datensätze 7 mal vorkommen...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 20:23 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