SQL many2many查询

时间:2015-12-18 19:28:25

标签: mysql sql select join many-to-many

我有3张桌子。

PersonT: ID 名称

洛特: ID 价

PersonLotT: 为person_id lot_id

我想知道这样的信息: 迈克尔(他所有人的总和,例如300 + 400 + 500 = 1200) 亚历克斯900 詹姆斯500

我尝试进行不同的查询,但一切都错了。

3 个答案:

答案 0 :(得分:1)

此查询在您的方案中很有用

  

从PersonLot中选择SUM(LotT.price)作为TotalPrice,PersonT.Name   在PersonLot.personID = PersonT.personid内部联接LotT上加入PersonT   在PersonLot.Lotid = LotT.id group by PersonT.Name

答案 1 :(得分:0)

试试这个。

    select name, sum(price)
from PersonLotT PL join LotT L on PL.lot_id = L.id
join PersonT P on PL.person_id = P.id
group by name;

设置sql小提琴以探索SQL Fidde

答案 2 :(得分:0)

试试这个:

select p.id, p.name, sum(t.price) as price
from PersonLotT pl
inner join PersonT p on pl.person_id = p.id
inner join LotT l on pl.lot_id = l.id
group by p.id, p.name;