2012-03-31 9 views
0

Ich habe ein Punktesystem und ich versuche, sie zusammenzufügen. Sie sind auf zwei verschiedenen Tabellen und ich verwende eine Unterabfrage, um beide Summen zu erhalten und sie zusammenzufügen. Beide Unterabfragen allein funktionieren gut, aber wenn ich sie addiere, bekomme ich eine viel größere Anzahl als sie eigentlich hätte.Hinzufügen von Punkten Summen aus zwei verschiedenen Tabellen

Hier ist meine Frage:

SELECT (SUM(tbl_achieve.achieve_points)+SUM(tbl_assign.assign_points)) 
FROM 
(SELECT DISTINCT(tbl_achievements.achieve_id), tbl_achievements.achieve_points FROM tbl_achievements INNER JOIN tbl_studentachieve ON tbl_studentachieve.achieve_id = tbl_achievements.achieve_id AND tbl_studentachieve.student_ID = 8 AND tbl_achievements.achieve_cat = "main") as tbl_achieve, 

(SELECT DISTINCT(tbl_assignments.assign_id), assign_points FROM tbl_assignments INNER JOIN tbl_studentassign ON tbl_studentassign.assign_id = tbl_studentassign.assign_id WHERE tbl_assignments.assign_cat = "main" AND tbl_studentassign.student_id = 8 AND tbl_studentassign.assign_status = "submitted") as tbl_assign 

Ich denke, was das Problem ist, ist, dass es sowohl Reihe schnürt zählt. Anstatt also 2 Reihen mit 10 Punkten zu haben, habe ich 10 Reihen mit 10 Punkten wegen der anderen Tischnummer.

Irgendeine Idee, was ich vermissen könnte?

Antwort

0

Dieser wird hart sein, ohne etwas über Ihre Datenbank zu wissen. Ich habe die folgende Abfrage ausgeführt: Wählen Sie SUMME (feed_id) + SUM (user_id) FROM Ereignisse wo 1

auf meine eigene db und es gibt die korrekte Ergänzung dieser vollständigen Zeilen zusammen als nur eine Zeile. Es klingt, als ob das nicht das ist, was Sie wollen, aber das ist das erwartete Verhalten von mySQL. vielleicht würde eine detailliertere Erklärung dessen, was Sie suchen, dazu beitragen, Sie dahin zu bringen, wo Sie sein müssen. Prost ...

Verwandte Themen