Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#3

AW: Datenbank Abfrage über 2 Tabellen

  Alt 27. Apr 2021, 11:48
Zugegebenermaßen hab' ich Deine Frage nicht so ganz verstanden:

Du hast eine 1:n-Beziehung zwischen Ausgabe und Dokumente und möchtest diese noch mit in Deine Abfrage einfügen?
SQL-Code:
select * from Ausgabe A
left join Wohnungsdaten W ON W.ID = A.IDWohnung
left join Objektdaten O ON O.ID = A.IDObjekt
left join Dokumente D ON D.IDSpalteDieAufAusgabeVerweist = A.ID
order by A.ID, A.TimeStamp desc
Damit dürftes Du dann in Deiner Abfrage je Ausgabe soviele Sätze erhalten, wie Dokumente zur Ausgabe vorhanden sind.

In Deiner While-Schleife musst Du dann beachten, dass nicht jedes Next zwingend zu einer neuen Ausgabe führt, sondern dass Du je Ausgabe halt n Next beachten musst. Du musst dort also selbst auf einen Gruppenwechsel bei der Ausgabe.ID (also deren Änderung) achten.

Oder bei Deiner derzeitigen Lösung je Datensatz die Dokumente laden, was programmiertechnisch sicherlich deutlich einfacher zu realisieren ist. Unter Laufzeitbedingungen könnte es aber andererseits weniger gut sein. Kommt auf die Datenmenge an.

Wenn's um eine Lösung für die Bearbeitung eines Datensatzes durch einen Anwender geht, lade die Dokumente in 'nem zweiten Schritt.

Musst Du aber "Unmengen" von Ausgaben am Stück bearbeiten (Batchverarbeitung, ...) dann prüfe, was letztlich programiertechnisch und laufzeittechnisch zum besseren Ergebnis führt.

Möglich sind beide Wege plus
Zitat von mkinzler:
Theoretisch wäre auch eine Pivot möglich (pro Dokument eine weiteres Feld)
als weitere Alternative.
  Mit Zitat antworten Zitat