日期:2014-05-19  浏览次数:20610 次

mysql 题 大家帮我看看哪里错了
P  
id name price type  
1 冰箱 1500 家电  
2 苹果 3 水果  
3 电视 600.0 家电  
4 李子 7 水果  
5 台灯 20.0 家电  
   
  C  
acid acname acadress  
 1 张三 北京  
 2 李四 上海  
 3 王五 天津
   
  O  
  acid id amount  
  1 1 12  
  3 1 1
  2 2 3
  1 3 1
  1 2 4
  3 5 4

求取销售额最少的前三种商品名称以及成交总额
select * from (select * from 
(select o.acid,p.name,sum(o.amount*p.price) as total from O o left join P p on p.id=o.id group by o.acid,p.name ) order by total) limit 0,3

------解决方案--------------------
在表p中就没有na_me这列 应该是这样写的
select t.name,t.total from (
select o.acid,p.name,sum(o.amount*p.price) as 
total from O o left join P p on p.id=o.id 
group by o.acid,p.name order by total 
) t limit 0,3 
希望对你有用。。如果可以给我写分。。急用要下载东西。
------解决方案--------------------
我觉得应该是right join P 吧。。

因为你要列出的是所有商品,只是取前3个而已,应该 order by total asc limit 0,3.