我有三张桌子
人
----+-------
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 |
我的问题是如何根据id person = 2来获得价格总和:表3的ref2 =表2的ref2和表2的ref1 =表人的ref1
如果我在表2中有双行,那么我只需要拿最高价格(对于表2的参考10,我只需要拿最高价格50)
结果应该是50 + 10
我希望这是可以理解的
谢谢你
您可以在子查询中通过人员ID和ref1列的组合从table3中获取最大值
然后,您可以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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句