求sql语句,是真不会写了。刚来没币啊。

例如表1:商品表 goods

id name fl
1 苹果 水果
2 橘子 水果
3 杯子 日用品
4 果冻 零食
5 冰箱 电器

表2:订单表 order

id goods_id zf_zt price
1 1 1 8
2 3 1 15
3 2 1 7

我想显示产品分类的销量 个数

这样的数据,排序可以不用倒叙

fl nums
水果 2
日用品 1
零食 0
电器 0

nums 是销量的意思。卖出了2份水果。

求解。

select fl,count(fl) AS nums from goods group by fl

select g.fl,count(zf_zt) as nums from order o inner join goods g where g.goods_id = g.id group by g.fl

并不清楚你的 nums代表什么,我按 nums代表订单个数写一个

 select 
     g.fl,count(1) as nums
 from order o
 left join goods g g.id=o.goods_id
 group by g.fl
select fl, sum(zf_zt) /*水果名称 销量*/
from goods, order
where goods.id = order.goods_id
group by goods.id, f1;

select fl, sum(zf_zt) as nums
from goods, order
where goods.id = order.goods_id
group by goods.id, f1;

select goods.fl,count(1) 
from 
goods left join orders on goods.id=orders.goods_id
group by goods.fl

SELECT
g.fl,sum(IF(o.price is NULL,0,1)) AS nums
FROM goods g
LEFT JOIN order o ON o.goods_id=g.id
GROUP BY g.fl

select g.fl,count(1) as 销量个数
from goods g,order o
where g.id=o.goods_id
group by g.fl
//l另外,你的order表和关键字重名,有问题!

http://www.w3school.com.cn/sql/sql_datatypes.asp