您的位置:首页 > 数据库

SQL中几个简单的函数:LEFT JOIN;COUNT遇上GROUP BY

2016-12-21 15:42 417 查看
概要:函数LEFT JOIN与COUNT/GROUP BY的使用,以及为AND筛选限制条件的合适位置

SQL:

SELECT DISTINCT att.attributes_templates_id,att.attributes_templates_name,COUNT(p.products_id) FROM attributes_templates att

LEFT JOIN categories_to_templates ctt ON att.`attributes_templates_id` = ctt.`templates_id`

LEFT JOIN categories c ON ctt.`categories_id` = c.`categories_id` and c.`objects_status_id` = 1

LEFT JOIN products p ON c.`categories_id` = p.`categories_id` and p.`objects_status_id` = 1

group by att.attributes_templates_id

注释:
关于LEFT JOIN,及AND筛选限制条件的位置
用于限制数据有效状态的c.`objects_status_id` = 1,p.`objects_status_id`
= 1,放在LEFT JOIN和放在WHERE语句中,得到的结果表行数是不同的
A/ 加在LEFT JOIN语句中(即使是LEFT JOIN,不是JOIN哦),被LEFT JOIN的表存在无效项,则会记为NULL,但整个数据行会保留;
B/ 加在WHERE语句中,被JOIN的表若无效项,则整个数据行会被过滤掉。

COUNT遇上GROUP BY

如果不加GROUP BY,COUNT单用含义则为“统计总数”,这样COUNT下来只有一行,按GROUP
BY才能按指定参数聚合;

据说是PM的必备技能的SQL,PM龄3年的我仍然菜鸟,今天开始用心学学
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sql