Сумма начисления баллов из двух разных таблиц - PullRequest
0 голосов
/ 31 марта 2012

У меня есть система баллов, и я пытаюсь сложить их вместе.Они находятся на двух разных таблицах, и я использую подзапрос, чтобы получить обе суммы и сложить их вместе.Оба подзапроса работают сами по себе, но их сложение дает мне гораздо большее число, чем предполагалось.

Вот мой запрос:

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

Я думаю, что проблема в том,что он объединяет обе строки.Поэтому вместо 2 строк по 10 точек у меня есть 10 строк по 10 точек из-за номера другой таблицы.

Есть идеи, чего мне не хватает?

1 Ответ

0 голосов
/ 31 марта 2012

Это будет сложно, ничего не зная о вашей базе данных. Я выполнил следующий запрос: выберите SUM (feed_id) + SUM (user_id) ОТ событий, где 1

на моем собственном БД, и он возвращает правильное сложение этих полных строк вместе как только одну строку. Похоже, это не то, что вы хотите, но это ожидаемое поведение MySQL. Возможно, более подробное объяснение того, что вы ищете, поможет вам добраться туда, куда вам нужно. Приветствия ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...