Einzelnen Beitrag anzeigen

Benutzerbild von p80286
p80286

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

Re: [SQL] Hilfe bei Verknüpfung zweier Tabellen

  Alt 6. Aug 2009, 16:15
Okay, brechen wir einen Glaubenskrieg vom Zaun!!

SQL-Code:
SELECT VTP_TABDOS.CODDOS, VTP_TABBRE.IDEPAY, VTP_TABEVE.CODEVE, VTP_TABSUI.DATECH
FROM (((VTP_TABDOS INNER JOIN VTP_TABBRE ON VTP_TABDOS.IDEDOS = VTP_TABBRE.IDEDOS) INNER JOIN VTP_TABPAY ON VTP_TABBRE.IDEPAY = VTP_TABPAY.IDEPAY) INNER JOIN VTP_TABSUI ON VTP_TABBRE.IDEBRE = VTP_TABSUI.IDEDOS) INNER JOIN VTP_TABEVE ON VTP_TABSUI.IDEECH = VTP_TABEVE.IDEEVE;
SQL-Code:
SELECT VTP_TABDOS.CODDOS, VTP_TABBRE.IDEPAY, VTP_TABEVE.CODEVE, VTP_TABSUI.DATECH
FROM VTP_TABDOS,
     VTP_TABBRE,
     VTP_TABPAY,
     VTP_TABSUI,
     VTP_TABEVE
WHERE VTP_TABDOS.IDEDOS = VTP_TABBRE.IDEDOS
  and VTP_TABBRE.IDEPAY = VTP_TABPAY.IDEPAY
  and VTP_TABBRE.IDEBRE = VTP_TABSUI.IDEDOS
  and VTP_TABSUI.IDEECH = VTP_TABEVE.IDEEVE
das obere Beispiel hat Access generiert da bin ich unschuldig!
Was mich z.B. stört
(VTP_TABDOS INNER JOIN VTP_TABBRE ......) INNER JOIN VTP_TABPAY ON .... Da wird eine Tabelle (VTP_TABPAY) mit zwei anderen Tabellen (VTP_TABDOS,VTP_TABBRE) verbunden. erst im "Nachsatz" lese ich, daß die Verbindung über
VTP_TABBRE.IDEPAY = VTP_TABPAY.IDEPAY erfolgt.

In der unteren Version erscheint mir das einfacher zu überblicken, da pro Zeile immer nur zwei Tabellen miteinander verbunden werden, insbesonders wenn noch ein paar Tabellen dazu kommen.

Was gegen die "alte" Version spricht, ist die Vermengung von "Tabellenverbindungen" und "Wertabfragen". Wenn man da eine Fremdabfrage in die Finger bekommt ist es mit der Übersichtlichkeit schnell dahin.

Für die "alte" Version spricht die (meiner Meinung nach) einfache Auskommentierbarkeit wenn z.b. eine Tabelle hinzu kommen soll oder entfernt werden soll .

Gruß
K-H
  Mit Zitat antworten Zitat