mysql 子查询
什么是子查询
一个select语句中包含另一个完整的select语句,或两个以上SELECT。
子select可以出现在where后面,当作一个查询条件使用;或者出现在from后面,作为一个新表单供查询使用。
#创建部门表 CREATE TABLE `dept` ( `deptno` bigint(2) NOT NULL AUTO_INCREMENT COMMENT '表示部门编号,由两位数字所组成', `dname` varchar(14) DEFAULT NULL COMMENT '部门名称,最多由14个字符所组成', `local` varchar(13) DEFAULT NULL COMMENT '部门所在的位置', PRIMARY KEY (`deptno`) ) ENGINE=InnoDB AUTO_INCREMENT=41 DEFAULT CHARSET=utf8;
#创建薪水级别表 CREATE TABLE `salgrade` ( `grade` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '工资等级', `lowSalary` int(11) DEFAULT NULL COMMENT '此等级的最低工资', `highSalary` int(11) DEFAULT NULL COMMENT '此等级的最高工资', PRIMARY KEY (`grade`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
#创建员工表 CREATE TABLE `emp` ( `empno` int(11) NOT NULL, `ename` varchar(255) DEFAULT NULL, `job` varchar(255) DEFAULT NULL, `mgr` varchar(255) DEFAULT NULL, `hiredate` date DEFAULT NULL, `salary` decimal(10,0) DEFAULT NULL, `comm` double DEFAULT NULL, `deptno` int(11) DEFAULT NULL, PRIMARY KEY (`empno`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 查询与项羽同一个部门员工姓名 SELECT ename,deptno from emp where deptno=(SELECT deptno FROM emp WHERE ename='项羽'); -- 查询刘备所属部门工资大于等于1500的员工姓名 SELECT ename,salary,deptno from emp WHERE deptno=(SELECT deptno from emp WHERE ename='刘备')and salary >=1500; -- 查询工资高于30号部门所有员工信息 SELECT * from emp WHERE salary >( SELECT max(salary) FROM emp where deptno=30); -- 查询工作和工资与妲己完全相同的员工信息 SELECT * from emp WHERE (job,salary)in(SELECT job,salary from emp WHERE ename='妲己'); SELECT * from emp e right JOIN (SELECT job,salary from emp WHERE ename='妲己') t1 on e.job=t1.job and e.salary=t1.salary; -- 查询员工编号为7788的员工名称、员工工资、部门名称、部门地址 SELECT empno,ename,salary,dname,local from emp e JOIN (SELECT * from dept WHERE deptno=(SELECT deptno from emp WHERE empno='7788')) t1 WHERE empno='7788'; -- 查询编号为7369员工编号、姓名及经理编号、姓名 SELECT * FROM emp WHERE empno in(( SELECT mgr from emp WHERE empno='7369'),'7369');
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!