3 Tabellen miteinander verknüpfen

sasfed

Mitglied
Hallo!

Ich habe ein kleines Problem. Und zwar möchte ich für mich ne kleine Finanzauswertung programmieren. Mein Tabellenstruktur sieht wie folgendermaßen aus. In der source habe ich ein Fremschlüssel für Überweisungen die Ein (IID) und einen für die, die AUS (OID) gingen. In diesen Untertabellen ist nochmal ein Fremdschlüssel für die Kategorie (KID).

Jetzt möchte ich die source auslesen und zwar mit folgendem SQL-Befehl:

Code:
SELECT source.SID, source.IID, source.KID, source.OID, source.waste, source.ktstand, kategorie.k_name, output.o_summe, output.o_datum, empfaenger.e_name FROM source, kategorie, output, empfaenger, input, absender WHERE  (kategorie.KID = source.KID)  AND ((output.OID = source.OID AND empfaenger.EID = output.EID) OR ( input.IID = source.IID AND absender.AID = input.AID)) ORDER BY source.SID DESC

Allerdings zeigt er mir jetzt 96 Datensätze an. Und das obwohl nur 10 in meiner DB sind. Irgendwie komisch hab ich mir gedacht ;-) Wäre super wenn mir jmd. weithelfen könnte.

viele grüße
sasfed
 
Du musst alle abzufragenden Tabellen miteinander verknüpfen. Tust du das nicht, entsteht die hohe Anzahl zurückgegebener Datensätze. Verwende ggf. OUTER-Joins oder UNION, um das gewünschte Ergebnis zu erzielen. Allerdings habe ich nicht ganz durchschaut, nach welchen Regeln du die Daten abfragen möchtest. Ausserdem ist der Thread im SQL-Forum besser aufgehoben, als hier.

Die Verwendung und Funktion von UNION und OUTER-Join kannst du in der MySQL-Doku nachschlagen.

Sven
 
Zurück