pm6 schrieb:
hmhmhm... okay.
Noch eine Frage:
Ich habe eine Tabelle in der ich eine Zeile per "sum funktion" summiere
In der zweiten Tabelle(Kein foreign key) summiere ich wieder eine Zeile
Summe Zeile 1 - Summe Zeile 2, auf was muss ich beim JOIN.. ON... achten damit das alles nicht multipliziert wird?!
Ich denke mal eher du summierst Spalten, nicht Zeilen. Und multipliziert wird da gar nichts

Ansonsten kann ich dir nur arg empfehlen solche Fragen mit einem kleinen Beispiel zu versehen, ansonsten erklären dir 10 verschiedene Leute 10 verschiedene Lösungen für das jeweils von ihnen verstandene Problem.
Vielleicht zum generellen Verständnis ein paar Sachen die mir nicht ganz eingängig waren, das wird dir sicherlich mehr helfen als spezifische Erklärungen:
*Du führst Abfragen immer auf Zeilen aus, Aggregatsfunktionen wie max, sum, etc werden aber immer auf Spalten ausgeführt.
*Du führst deine Abfrage immer auf eine Tabelle aus. Ein Join ist nichts weiter, als wenn du deine Ursprungstabelle um die gejointe Tabelle erweiterst. LEFT JOIN/ RIGHT JOIN /INNER / OUTER sagt dabei nur aus, welches deine Anfangstabelle ist und was passiert, wenn Joinbedingungen für mehr als eine Zeile zutreffen.
*Jede Unterabfrage liefert ihrerseits nur eine Tabelle zurück, das heißt du kannst auf Unterabfragen genauso joinen wie auf stinknormale Tabellen
Kurzer Denkanstoß:
SELECT * FROM (SELECT 'hui' AS A, 'bui' AS B) tbl LEFT JOIN tabelle tbl2 ON tbl.A = tabelle.Spaltenname
und nein: da fehlt kein Tabellenname im Subselect ;D
*Wenn du Aggregatsfunktionen verwendest und ein Group by benutzt, mußt du jedes Feld das du selektierst und was nicht in einer Aggregatsfunktion verwendet wird, in ein GROUP BY packen. Ansonsten würde die Datenbank 'raten' welche Sätze wegfallen. Schlomodatenbanken wie Mysql und SQLite erlauben das, aber gewöhn es dir bloß nicht an.
*Foreign Keys als Constraints sind nice to have, aber mehr auch nicht. Ich an deiner Stelle würde mir da gar keine Gedanken drum machen, maximal das Kapitel im Handbuch lesen und im Hinterkopf behalten, dass es soetwas gibt.