日期:2014-05-18  浏览次数:20564 次

求一sql语句,关于两表符合查询的问题
a,b两表,a表和b表通过产品编号联系,a表有实际数量,b表有每条应该数量,以a表作为基表查询,相同的产品显示b表相同产品的数量和。
如下
a表
ProductID   aQty  
a1                     1
a2                     2
a3                     3
b表
productID   bQty
a1                   1
a1                   2
a2                   3
a2                   4
a2                   5

查询出来以后如下


ProductID     aQty     SumbQty
a1                     1           3
a2                     2           12
a3                     3           0

我也的语句如下
select   a.*,SumbQty=(select   sum(bQty)   from   b   where   b.productID=a.ProductID   group   by   b.ProductID   )   from   a

是可以实现的,我想问实现这种查询有没有更好的方式?谢谢


------解决方案--------------------
--用连接效率高一些.

select a.*,b.SumbQty
from a
left join (select ProductID,sum(bQty) as SumbQty from b group by ProductID)b on b.productID=a.ProductID
------解决方案--------------------
select a.ProductID,a.aQty,b.SumbQty
from a
left join (select ProductID,sum(bQty) as SumbQty from b group by ProductID)b on b.productID=a.ProductID

------解决方案--------------------
楼上的正解
------解决方案--------------------
楼上正解