SQL 多对多查询

SQL many2many query

我有 3 张桌子。

人T: ID 名字

很多T: ID 价格

人签: person_id lot_id

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

我尝试进行不同的查询,但都是错误的。

试试这个。

    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;

A sql fiddle 设置用于探索 SQL Fidde

试试这个:

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;

此查询对您的场景很有帮助

select SUM(LotT.price) as TotalPrice, PersonT.Name from PersonLot join PersonT on PersonLot.personID=PersonT.personid inner join LotT on PersonLot.Lotid=LotT.id group by PersonT.Name