分组拼接 ---group_concat(纵向拼接)
将表中某个字段的所有值拼接到同一结果中,默认使用逗号分割开
select ename,id from emp where id < 6;
select group_concat(ename) from emp where id < 6
select deptno,ename from emp group by deptno;
select deptno,group_concat(ename) from emp group by deptno 打印每个部门的人员姓名
示例:查看各部门人员总数和人员名称明细
select deptno,count(*),group_concat(ename) from emp group by deptno;
练习:查询公司工资最高的员工的所有信息
select ename,max(sal) from emp ;————————————————这种写法是错误的
select ename,sal from emp order by sal desc limit 1;————————————这种写法也是错误的,不严谨
select * from emp having sal=max(sal);————————————————这种写法是错误的
select max(sal) from emp;
select * from emp where sal = (select max(sal) from emp)
查询之后再次限定---having
语法:
select 查询内容 from 表 where 限定条件 group by 分组条件 having 再次限定条件 order by 排序条件 排序方式
where和having的区别:
1:where 是在查询之前进行筛选,having是在