Einzelnen Beitrag anzeigen

Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.338 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Zugriff auf eine n:m Verknüpfung

  Alt 31. Mär 2022, 13:34
Einerseits denkst du viel zu kompliziert, andererseits zu einfach. Dazu kommt eine leichte Fehlkonstruktion der Tabellen.

Du kannst es dir im Moment noch einfach machen, da in den Kundenlieferadressen die kundenid noch enthalten ist. Du benötigst für die aktuelle Anforderung die dritte Tabelle (noch) nicht:
Code:
SELECT * FROM KUNDENSTAMM
JOIN KUNDENLIEFERADRESSEN ON KUNDENSTAMM.ID = KUNDENLIEFERADRESSEN.IDKUNDEN
WHERE KUNDENSTAMM.ID = <Deine Kunden-ID>
Wenn du die Fehlkunstruktion entfernst, ist es etwas "komplizierter".
Die Fehlkonstruktion ist die Kunden-ID in der Tabelle KUNDENLIEFERADRESSEN. Mit der n:m-Beziehung sollte das Feld dort eigentlich nicht mehr vorhanden sein.
Das entsprechende SQL-Statement sieht dann etwa so aus:
Code:
SELECT * FROM KUNDENSTAMM
JOIN ADRESSENSTAMM ON KUNDENSTAMM.ID = ADRESSENSTAMM.IDKUNDE
JOIN KUNDENLIEFERADRESSEN ON ADRESSENSTAMM.IDLIEFERADRESSEN = KUNDENLIEFERADRESSEN.ID
WHERE KUNDENSTAMM.ID = <Deine Kunden-ID>
Was dir eigentlich gefehlt hat, war die Where-Bedingung. BTW: Du solltest mit Parametern arbeiten und nicht die Werte direkt ins SQL einbauen. Aber das ist noch ein anderes Thema.

Es kann sein, dass die SQLs nicht ganz sauber sind, da ich die nicht kontrollieren kann und mir auch die IDs nicht alle genau bekannt sind. Könnte also sein, dass du noch ein bisschen nacharbeiten musst.
Peter

Geändert von Jasocul ( 1. Apr 2022 um 06:10 Uhr)
  Mit Zitat antworten Zitat