微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 如何订购具有最多产品的类别

我不太清楚mysql中的一个.
我有两张桌子:

tblcategory
id,名字

tblproduct
id,Name,Qty,Price,Category_id

当我使用sql选择按产品数量排序的所有catogories时:

SELECT c.id,c.name,count(p.id) as product_count 
FROM tblcategory as c inner join tblproduct as p on c.id=p.category_id 
GROUP BY c.id,c.name 
ORDER BY product_count;

结果是某些没有产品的类别没有出现在我的结果中!我怎么能得到所有这些?

解决方法:

您需要使用左外连接:

SELECT c.id,c.name,count(p.id) as product_count 
FROM tblcategory as c left outer join tblproduct as p on c.id=p.category_id 
GROUP BY c.id,c.name 
ORDER BY product_count;

内部联接仅保留两个表中匹配的记录.即使没有匹配项,您也需要所有产品类别.左外连接保留第一个表(tblcategory)中的所有记录以及第二个表(tblproduct)中的任何匹配记录.如果某个类别中没有产品,那么您将获得值0而不是缺失的行.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐