SQL 笔记1,left join,group by,having
Posted 壹品轩
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL 笔记1,left join,group by,having相关的知识,希望对你有一定的参考价值。
表:XS,XK,CJ
left join 表1 on 表1.字段=表2.字段
group by 分组条件
order by 排序条件 asc正序(小到大),desc倒序
having 跟条件类似where,不过需要在返回集字段中包含该字段
否则会报错:Unknown column ‘c.CJ‘ in ‘having clause‘,未知的列,在having
例:
#查询有不及格的成绩的学生姓名
SELECT
s.XSMC, c.CJ
FROM cj c
LEFT JOIN xs s ON s.XSDM=c.XSDM
LEFT JOIN xk k ON k.XKDM=c.XKDM
GROUP BY c.XSDM
HAVING c.CJ <60
#查询所有学生所有学科的成绩<=60
SELECT
s.XSMC,k.XKMC,c.CJ
FROM xs s,xk k,cj c
WHERE s.XSDM = c.XSDM
AND k.XKDM = c.XKDM
AND c.CJ <= 60
#查询学生总成绩
#ASC正序小到大,DESC倒序大到小
SELECT s.XSMC, SUM(c.CJ)
FROM xs s,xk k,cj c
WHERE s.XSDM = c.XSDM
AND k.XKDM = c.XKDM
GROUP BY c.XSDM
ORDER BY
SUM(c.CJ) ASC
以上是关于SQL 笔记1,left join,group by,having的主要内容,如果未能解决你的问题,请参考以下文章
SQL GROUP BY 与 LEFT JOIN MS SQL Server
如何在 Teradata SQL 中使用 LEFT JOIN 对查询中的非聚合参数进行 GROUP BY?
EF Linq to Sql 多表left join查询并对结果group by分组之后进行count,max等处理
SQL sum()后许多字段要group by不使用group by, 改用left join select 需要的字段。哪个方法好?速度快?