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');
复制代码

 

posted @   系统显示名称已被使用  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示