Выборка суммы из двух таблиц

Lazarius

Новичок
Выборка суммы из двух таблиц

Привет всем.
Есть две таблицы
t1 - id | name | sum
t2 - name | sum2

Нужно получить сумму сумм из двух таблиц для name.

Если запрос
PHP:
SELECT t1.name, SUM(sum+sum2) AS val FROM t1, t2 WHERE t1.name=t2.name GROUP BY t1.name, t2.name
то сумма для t1 считается правильно, а для t2 сумма берется столько раз сколько записей name присутствует в t1.

Проще говоря если в t1 есть две записи
PHP:
1 | nic | 10
2 | nic | 10
а в t2
PHP:
nic | 20
то нужно получить значение 40 (10+10+20), а получаю значение 60 (10+10+20+20)

Как получить нужное мне значение?
 

gerich

Новичок
Твой запрос выводит все как и должен только не так как нужно тебе:)

Но вот этот думаю должен тебе помочь:

SELECT
t1.name,
@s3:=(
@s2 := ( SELECT sum( t2.sum2 ) FROM t2 WHERE t2.name = t1.name GROUP BY t2.name )
)+(
@s1 := sum( t1.sum )
) as AllSum
FROM
t1
GROUP BY t1.name

Но есть пара недоделок, которые ты уж сам
1. если в t2 есть name которого нет в t1, то не попадет в выборку
2. если в t1 есть name которого нет в t2, то в выборку попадет, но значение будет NULL

короче если что не понятно пиши...
 
Сверху