Приветствую!
Вот уже довольно долго бьюсь пытаюсь составить запрос. Не буду посвящать во все тонкости и постараюсь предельно упростить задачу.
Имеются 3 таблицы (для простоты). Одна пусть будет users с уникальным полем id. Две другие таблицы (назовём их A и B) содержат некоторое количество записей (каждая запись имеет столбец-связку id с первой таблицей).
Запросом нужно получить сумму сумм записей в таблицах A и B, домноженных на определённые коэффициенты, для каждого из пользователей в users.
Пример (указаны значения id для каждой из записей):
users: 1 2 3 4 5
A: 1 1 2 4 4 4 (пусть для первой таблицы коэффициент 2)
B: 1 3 3 3 (для второй коэффициент 3)
посчитаем для первого пользователя (2 записи в таблице А) * 2 + (1 запись в таблице В) * 3 = 7
результат для каждого пользователя:
id sum
1 7
2 2
3 9
4 6
5 0
В первую очередь интересует решение без использования подзапросов (если таковое вооще существует). Заранее, спасибо.
1. Реф - 27 Декабря, 2010 - 00:32:57 - перейти к сообщению
2. OrmaJever - 27 Декабря, 2010 - 00:58:21 - перейти к сообщению
Математические действия в любом случае лутше проводить в php.
CODE (SQL):
скопировать код в буфер обмена
скопировать код в буфер обмена
- SELECT count(a.*) AS count_a, count(b.*) AS count_b FROM a , b, users WHERE a.id = users.id AND b.id = users.id
Попробуйте такой запрос. Хотя я не уверен что будет работать но count_a и count_b должны содержать количесво для таблиц А и Б а их уже переменожать в php