# Komplexe Abfrage entzerren



## Guest (16. Mrz 2007)

Hi,

folgendes Problem: ich habe eine Datenbank, in der z.B. 5 Tabellen sind.
Zu beginn sende ich eine Abfrage, die mir z.B. 5 Einträge aus der Tabelle 1 zurückliefert. Und zu jedem dieser zurückgelieferten Einträge gibt es in Tabelle 2 wieder einen oder sogar mehrere (über eine id verknüpft).
Wie gehe ich das Problem am besten an, sodass der Code am Ende noch verständlich ist und nicht alles in einer Funktion hängt??

Danke schonmal!


----------



## DocRandom (16. Mrz 2007)

Hi!

Also wenn die Tabellen richtig verknüpft sind, dann kanst Du dies per JOIN´s lösen!

mfg
DocRandom


----------



## Gast (16. Mrz 2007)

Ich befürchte, dass dies nicht genug ist.
Erstens gäbe das eine Select-Abfrage die sehr, sehr lang und somit unübersichtlich wird (Oben ist alles nur verkürzt dargestellt).
Und zweitens hängt es vom Ergebnis der ersten Abfrage ab, in welcher Tabelle die zweite Abfrage gestartet werden muss!


----------



## Guest (17. Mrz 2007)

Es gibt kein Patentrezept. Mann kann die WHERE-Klausel Bedingunge nach Tabellen
sortieren oder z.B. nach Bedingungen, die die größte Reduktion der Ergebnismenge 
bewirken usw.
Da das zweite von so gut wie jedem vernünftigen RDBMS automatich optimiert wird,
würde ich eher zur ersten Version tendieren. Bei fünf Tabellen ist es noch nicht gross 
genug, um sich da groß Gedanken über die Übersichtlichkeit zu machen. 
Ausreichend testen, optimieren, kommentieren und gut ist. 
Ich habe hier PL/SQL Abfragen, die länger als 60 Zeilen, gut 15 Subqueries sind und 
trotzdem sind sie für jeden im Team verständlich, da sie ausführlich dokummentiert 
sind.
Um die Lesbarkeit zu verbessern, kann man sich auf bestimmte Formattierung (Einrücken
von SQL-Code, Uppercase für Schlüßelwörter etc.) einigen und diese im gesamten Projekt 
konsequent durchziehen.


----------

