2012-03-31 7 views
0

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

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

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 баллов из-за номера другой таблицы.

Любая идея, что мне не хватает?

ответ

0

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

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

Смежные вопросы