比如商品分类表:type(id,name)有两条记录{(1 '服装'),(2 '手机')}
商品表:product(id,name,typeid)记录为{(1 '诺基亚6030' 2),(2 'n97' 2)}
用这个SQL语句查的话
select count(*),t.* from type t left outer join product p on t.id = p.typeid group by t.id
count(*) id name
1 1 服装
2 2 手机
可是服装这个类下是没有商品的,应当count数为0,但这里却是1
不知道有哪位高手可以解决这个问题
商品表:product(id,name,typeid)记录为{(1 '诺基亚6030' 2),(2 'n97' 2)}
用这个SQL语句查的话
select count(*),t.* from type t left outer join product p on t.id = p.typeid group by t.id
count(*) id name
1 1 服装
2 2 手机
可是服装这个类下是没有商品的,应当count数为0,但这里却是1
不知道有哪位高手可以解决这个问题
解决方案 »
- 【修改datetime字段值报错】如果把datetime字段修改成大于2039-01-08则报错,小于它则OK,请各位大师帮忙分析一下,谢谢!
- 谁给推荐本mysql的书?
- 在mysql存储过程中sql如何有效判断
- mysql能否同步个别的表,而非整个数据库?
- mysql中的存储过程如何修改?
- 一个库里表多了,对mysql的性能是不是很有影响
- 我把MySQL数据库中一个latin1_general_ci字段修改成了GB2312_chinese_ci结果出现乱码,怎么处理。
- PHPADMIN页面的Overhead是何意思?
- 关于mysql数据库备份优化的问题
- 请教下关于电子商务网站后台Mysql架构问题及硬件规格问题
- 求一SQL语句
- mysql问题
select count(*),t.* from type t inner join product p on t.id = p.typeid group by t.id
select count(*),t.* from type t left outer join product p on t.id = p.typeid group by t.id
count(*) id name你这个是左外连接。就算商品表里不存在服装这个类的记录。二表左外连接时依然会有记录只是记录以
type.id type.name product.id product.name product.typeid
1 服装 null null null这样存在。所以你count(*)它时。当然等于1了。
你可以先不count试下左外连接的结果就知道了。
from product p right join type t
on p.typeid=t.id
group by t.id;