2015-01-15 142 views
1

我有三個表MySQL的選擇最大的總和值

----+------- 
id | ref1 | 
----+------- 
2 | 10 | 
----+------- 
2 | 11 | 
----+------- 
3 | 12 | 
----+------- 

表2

+-------+------- 
|ref1 | ref2 | 
-------+-------- 
|10  | 20 | 
--------+------- 
|10  | 22 | 
--------+------- 
|11  | 35 | 
--------+------- 
|26  |47 | 

表3

-----+------ 
ref2 |price| 
-----+------ 
20 |50 | 
-----+------ 
22 |5 | 
-----+----- 
35 |10 | 

我的問題是怎樣才能得到價格的總和根據:表人的表2和表2 =的REF1 REF1的表3 = REF2的REF2時,ID人= 2

Fot的,我只需要採取最高價格,如果我有表2雙列(表2的裁判10我需要的只有價格50)

結果應該是50 + 10

我希望這是可以理解的

並且謝謝

+0

我想你可能正在尋找某種'JOIN'。查詢的哪部分需要幫助? – ryanyuyu 2015-01-15 16:10:05

回答

0

你可以從每個人的ID和REF1列的組合表3最大值在子查詢

然後,您可以得到maximum這些值

select t.id, max(refPrice) as maxPrice 
from 
(
select p.id , p.ref1 + max(t3.price) as refPrice 
from person p 
join table2 t2 
on p.ref1 = t2.ref1 
join table3 t3 
on t2.ref2 = t3.ref2 
group by p.id, p.ref1 
)t 
group by t.id 
+0

謝謝,它的效果很好。 – osiris23 2015-01-16 09:50:45

0

的試試這個方法...

SELECT SUM(GroupSum) as 
    TotalSum 
FROM(
    SELECT MAX(t3.price) as GroupSum FROM Person p 
    INNER JOIN Table2 t2 ON p.ref1=t2.ref1 
    INNER JOIN Table3 t3 ON 
    t2.ref2=t3.ref2 WHERE p.id=2 
    GROUP BY p.id,p.ref1 
    ) ttl 
GROUP BY t.id 
+0

也謝謝你。它工作正常 – osiris23 2015-01-16 09:51:09