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
我有 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