建立网站的内容规划,长沙网络推广哪家,莱阳做网站,中国机械采购平台关于表格的创建#xff0c;请看上一篇文章——MySQL查询—连接查询
1、联合查询#xff1a;把多次查询的结果合并#xff0c;形成一共新的查询集。
UNION#xff0c;UNION ALL
语法#xff1a;
SELECT 字段列表 FROM 表#xff21;#xff0e;#xff0e;#…关于表格的创建请看上一篇文章——MySQL查询—连接查询
1、联合查询把多次查询的结果合并形成一共新的查询集。
UNIONUNION ALL
语法
SELECT 字段列表 FROM 表 SELECT 字段列表 FROM 表
.、举个例子
..、将薪资低于5000的员工和年龄大于50岁的员工全部查询出来
SELECT * FROM emp_new a WHERE a.salary5000
UNION ALL
SELECT * FROM emp_new b WHERE b.age50;
查询结果发现将薪资低于5000年龄大一50的员工都展示出来了但是会发现没有去重鹿仗客出现了两次所以我们要进行去重的操作删除all即可
SELECT * FROM emp_new a WHERE a.salary5000
UNION
SELECT * FROM emp_new b WHERE b.age50; 总结上下字段数目必须一致UNION ALL会有城府结果UNION不会 联合查询比使用or的效率更高不会索引失效
、子查询
语句中嵌套语句称作嵌套查询又称子查询。子查询外边缘的语句可以是
语法
SELECT * FROM SELECT
子查询又分为类标量子查询、列子查询、行子查询、表子查询
.、标量子查询子查询结果为单个值
子查询返回的结果是单个值数字、字符串、日期等。常用操作符
、查询“销售部”的所有员工信息当然有好多解决方法哈
、查询“销售部”部门
SELECT 销售部
、根据销售部门查询员工信息
SELECT * FROM
那么可以直接将两个语句进行合并
SELECT 销售部
.、列子查询子查询结果为一列
列子查询的结果是一列可以是多行
列子查询——常用操作符 操作符描述IN在指定的集合范围内多选一NOT 不在指定的集合范围内子查询返回列表中有任意一共满足即可与等同使用的地方都可以是子查询返回列表的所有值都必须满足
2.2.1、查询销售部和市场部的所有员工信息
SELECT id FROM dept b where b.name销售部 OR b.name市场部;SELECT * FROM emp_new WHERE dept_id IN (SELECT id FROM dept b where b.name销售部 OR b.name市场部);
..、查询比财务部所有人工资都高的员工信息
SELECT id FROM dept b WHERE b.name财务部;
SELECT salary FROM emp_new a WHERE a.dept_id(SELECT id FROM dept b WHERE b.name财务部);
SELECT *FROM emp_new a WHERE a.salaryALL(SELECT salary FROM emp_new a WHERE a.dept_id(SELECT id FROM dept b WHERE b.name财务部));
..、 查询比研发部任意一人工资高的员工信息或
SELECT id FROM dept b WHERE b.name研发部;
SELECT salary FROM emp_new a WHERE a.dept_id(SELECT id FROM dept b WHERE b.name研发部);
SELECT *FROM emp_new a WHERE a.salaryANY(SELECT salary FROM emp_new a WHERE a.dept_id(SELECT id FROM dept b WHERE b.name研发部));.、行子查询子查询结果为一行
行子查询的结果是一行可以是多列
举个例子
..、查询与张无忌的薪资及直属领导相同的员工
SELECT id FROM emp_new a WHERE a.name张无忌;
SELECT a.salary,a.managerid FROM emp_new a WHERE id(SELECT id FROM emp_new a WHERE a.name张无忌);
SELECT * FROM emp_new a WHERE (a.salary,a.managerid)(SELECT a.salary,a.managerid FROM emp_new a WHERE id(SELECT id FROM emp_new a WHERE a.name张无忌));
SELECT * FROM emp_new WHERE (salary,managerid)(SELECT salary,managerid FROM emp_new WHERE name张无忌)); .、表子查询子查询结果为多行多列
表子查询返回的结果是多行多列 常用操作符是
举个例子
..、查询与“鹿仗客”“宋远桥”的职位和薪资相同的员工信息
SELECT job,salary FROM emp_new WHERE name鹿杖客 or name宋远桥;
SELECT * FROM emp_new WHERE (job,salary) IN (SELECT job, salary FROM emp_new WHERE name鹿仗客 OR name宋远桥);
..、查询入职日期是20060101之后的员工及其部门信息
SELECT * FROM emp_new a where a.enterdate2006-01-01;SELECT e.*,d.* FROM (SELECT * FROM emp_new a where a.enterdate2006-01-01) e LEFT JOIN dept d ON e.dept_idd.id; 完结撒花