多表查询
mysql> select * from emp,dept;
+----+--------------+------+--------------+--------+------------+-----------+---------+----+-----------+
| id | name | age | job | salary | entrydate | managerid | dept_id | id | name |
+----+--------------+------+--------------+--------+------------+-----------+---------+----+-----------+
| 1 | 张三 | 25 | 工程师 | 5000 | 2021-01-01 | 1 | 1 | 6 | 人事部 |
| 1 | 张三 | 25 | 工程师 | 5000 | 2021-01-01 | 1 | 1 | 5 | 总经办 |
| 1 | 张三 | 25 | 工程师 | 5000 | 2021-01-01 | 1 | 1 | 4 | 销售部 |
| 1 | 张三 | 25 | 工程师 | 5000 | 2021-01-01 | 1 | 1 | 3 | 财务部 |
| 1 | 张三 | 25 | 工程师 | 5000 | 2021-01-01 | 1 | 1 | 2 | 市场部 |
| 1 | 张三 | 25 | 工程师 | 5000 | 2021-01-01 | 1 | 1 | 1 | 研发部 |
| 2 | 李四 | 30 | 经理 | 8000 | 2020-12-15 | 1 | 2 | 6 | 人事部 |
| 2 | 李四 | 30 | 经理 | 8000 | 2020-12-15 | 1 | 2 | 5 | 总经办 |
| 2 | 李四 | 30 | 经理 | 8000 | 2020-12-15 | 1 | 2 | 4 | 销售部 |
| 2 | 李四 | 30 | 经理 | 8000 | 2020-12-15 | 1 | 2 | 3 | 财务部 |
| 2 | 李四 | 30 | 经理 | 8000 | 2020-12-15 | 1 | 2 | 2 | 市场部 |
| 2 | 李四 | 30 | 经理 | 8000 | 2020-12-15 | 1 | 2 | 1 | 研发部 |
| 3 | 王五 | 28 | 销售员 | 4000 | 2021-02-10 | 2 | 1 | 6 | 人事部 |
| 3 | 王五 | 28 | 销售员 | 4000 | 2021-02-10 | 2 | 1 | 5 | 总经办 |
| 3 | 王五 | 28 | 销售员 | 4000 | 2021-02-10 | 2 | 1 | 4 | 销售部 |
| 3 | 王五 | 28 | 销售员 | 4000 | 2021-02-10 | 2 | 1 | 3 | 财务部 |
| 3 | 王五 | 28 | 销售员 | 4000 | 2021-02-10 | 2 | 1 | 2 | 市场部 |
| 3 | 王五 | 28 | 销售员 | 4000 | 2021-02-10 | 2 | 1 | 1 | 研发部 |
| 4 | 赵六 | 35 | 人事 | 6000 | 2021-03-20 | 2 | 2 | 6 | 人事部 |
| 4 | 赵六 | 35 | 人事 | 6000 | 2021-03-20 | 2 | 2 | 5 | 总经办 |
| 4 | 赵六 | 35 | 人事 | 6000 | 2021-03-20 | 2 | 2 | 4 | 销售部 |
| 4 | 赵六 | 35 | 人事 | 6000 | 2021-03-20 | 2 | 2 | 3 | 财务部 |
| 4 | 赵六 | 35 | 人事 | 6000 | 2021-03-20 | 2 | 2 | 2 | 市场部 |
| 4 | 赵六 | 35 | 人事 | 6000 | 2021-03-20 | 2 | 2 | 1 | 研发部 |
| 5 | 刘七 | 27 | 技术支持 | 4500 | 2021-04-05 | 3 | 1 | 6 | 人事部 |
| 5 | 刘七 | 27 | 技术支持 | 4500 | 2021-04-05 | 3 | 1 | 5 | 总经办 |
| 5 | 刘七 | 27 | 技术支持 | 4500 | 2021-04-05 | 3 | 1 | 4 | 销售部 |
| 5 | 刘七 | 27 | 技术支持 | 4500 | 2021-04-05 | 3 | 1 | 3 | 财务部 |
| 5 | 刘七 | 27 | 技术支持 | 4500 | 2021-04-05 | 3 | 1 | 2 | 市场部 |
| 5 | 刘七 | 27 | 技术支持 | 4500 | 2021-04-05 | 3 | 1 | 1 | 研发部 |
| 6 | 陈八 | 32 | 财务 | 7000 | 2021-05-12 | 3 | 2 | 6 | 人事部 |
| 6 | 陈八 | 32 | 财务 | 7000 | 2021-05-12 | 3 | 2 | 5 | 总经办 |
| 6 | 陈八 | 32 | 财务 | 7000 | 2021-05-12 | 3 | 2 | 4 | 销售部 |
| 6 | 陈八 | 32 | 财务 | 7000 | 2021-05-12 | 3 | 2 | 3 | 财务部 |
| 6 | 陈八 | 32 | 财务 | 7000 | 2021-05-12 | 3 | 2 | 2 | 市场部 |
| 6 | 陈八 | 32 | 财务 | 7000 | 2021-05-12 | 3 | 2 | 1 | 研发部 |
| 7 | 杨九 | 29 | 市场 | 5500 | 2021-06-18 | 4 | 1 | 6 | 人事部 |
| 7 | 杨九 | 29 | 市场 | 5500 | 2021-06-18 | 4 | 1 | 5 | 总经办 |
| 7 | 杨九 | 29 | 市场 | 5500 | 2021-06-18 | 4 | 1 | 4 | 销售部 |
| 7 | 杨九 | 29 | 市场 | 5500 | 2021-06-18 | 4 | 1 | 3 | 财务部 |
| 7 | 杨九 | 29 | 市场 | 5500 | 2021-06-18 | 4 | 1 | 2 | 市场部 |
| 7 | 杨九 | 29 | 市场 | 5500 | 2021-06-18 | 4 | 1 | 1 | 研发部 |
| 8 | 黄十 | 31 | 运营 | 6500 | 2021-07-25 | 4 | 2 | 6 | 人事部 |
| 8 | 黄十 | 31 | 运营 | 6500 | 2021-07-25 | 4 | 2 | 5 | 总经办 |
| 8 | 黄十 | 31 | 运营 | 6500 | 2021-07-25 | 4 | 2 | 4 | 销售部 |
| 8 | 黄十 | 31 | 运营 | 6500 | 2021-07-25 | 4 | 2 | 3 | 财务部 |
| 8 | 黄十 | 31 | 运营 | 6500 | 2021-07-25 | 4 | 2 | 2 | 市场部 |
| 8 | 黄十 | 31 | 运营 | 6500 | 2021-07-25 | 4 | 2 | 1 | 研发部 |
| 9 | 罗十一 | 26 | 设计师 | 4800 | 2021-08-30 | 5 | 1 | 6 | 人事部 |
| 9 | 罗十一 | 26 | 设计师 | 4800 | 2021-08-30 | 5 | 1 | 5 | 总经办 |
| 9 | 罗十一 | 26 | 设计师 | 4800 | 2021-08-30 | 5 | 1 | 4 | 销售部 |
| 9 | 罗十一 | 26 | 设计师 | 4800 | 2021-08-30 | 5 | 1 | 3 | 财务部 |
| 9 | 罗十一 | 26 | 设计师 | 4800 | 2021-08-30 | 5 | 1 | 2 | 市场部 |
| 9 | 罗十一 | 26 | 设计师 | 4800 | 2021-08-30 | 5 | 1 | 1 | 研发部 |
| 10 | 吴十二 | 33 | 采购 | 7500 | 2021-09-08 | 5 | 2 | 6 | 人事部 |
| 10 | 吴十二 | 33 | 采购 | 7500 | 2021-09-08 | 5 | 2 | 5 | 总经办 |
| 10 | 吴十二 | 33 | 采购 | 7500 | 2021-09-08 | 5 | 2 | 4 | 销售部 |
| 10 | 吴十二 | 33 | 采购 | 7500 | 2021-09-08 | 5 | 2 | 3 | 财务部 |
| 10 | 吴十二 | 33 | 采购 | 7500 | 2021-09-08 | 5 | 2 | 2 | 市场部 |
| 10 | 吴十二 | 33 | 采购 | 7500 | 2021-09-08 | 5 | 2 | 1 | 研发部 |
| 11 | 郑十三 | 28 | 客服 | 4200 | 2021-10-14 | 6 | 1 | 6 | 人事部 |
| 11 | 郑十三 | 28 | 客服 | 4200 | 2021-10-14 | 6 | 1 | 5 | 总经办 |
| 11 | 郑十三 | 28 | 客服 | 4200 | 2021-10-14 | 6 | 1 | 4 | 销售部 |
| 11 | 郑十三 | 28 | 客服 | 4200 | 2021-10-14 | 6 | 1 | 3 | 财务部 |
| 11 | 郑十三 | 28 | 客服 | 4200 | 2021-10-14 | 6 | 1 | 2 | 市场部 |
| 11 | 郑十三 | 28 | 客服 | 4200 | 2021-10-14 | 6 | 1 | 1 | 研发部 |
| 12 | 周十四 | 34 | 行政 | 6800 | 2021-11-21 | 6 | 2 | 6 | 人事部 |
| 12 | 周十四 | 34 | 行政 | 6800 | 2021-11-21 | 6 | 2 | 5 | 总经办 |
| 12 | 周十四 | 34 | 行政 | 6800 | 2021-11-21 | 6 | 2 | 4 | 销售部 |
| 12 | 周十四 | 34 | 行政 | 6800 | 2021-11-21 | 6 | 2 | 3 | 财务部 |
| 12 | 周十四 | 34 | 行政 | 6800 | 2021-11-21 | 6 | 2 | 2 | 市场部 |
| 12 | 周十四 | 34 | 行政 | 6800 | 2021-11-21 | 6 | 2 | 1 | 研发部 |
| 13 | 朱十五 | 27 | 品控 | 5200 | 2021-12-27 | 7 | 1 | 6 | 人事部 |
| 13 | 朱十五 | 27 | 品控 | 5200 | 2021-12-27 | 7 | 1 | 5 | 总经办 |
| 13 | 朱十五 | 27 | 品控 | 5200 | 2021-12-27 | 7 | 1 | 4 | 销售部 |
| 13 | 朱十五 | 27 | 品控 | 5200 | 2021-12-27 | 7 | 1 | 3 | 财务部 |
| 13 | 朱十五 | 27 | 品控 | 5200 | 2021-12-27 | 7 | 1 | 2 | 市场部 |
| 13 | 朱十五 | 27 | 品控 | 5200 | 2021-12-27 | 7 | 1 | 1 | 研发部 |
| 14 | 秦十六 | 32 | 研发 | 7800 | 2022-01-02 | 7 | 2 | 6 | 人事部 |
| 14 | 秦十六 | 32 | 研发 | 7800 | 2022-01-02 | 7 | 2 | 5 | 总经办 |
| 14 | 秦十六 | 32 | 研发 | 7800 | 2022-01-02 | 7 | 2 | 4 | 销售部 |
| 14 | 秦十六 | 32 | 研发 | 7800 | 2022-01-02 | 7 | 2 | 3 | 财务部 |
| 14 | 秦十六 | 32 | 研发 | 7800 | 2022-01-02 | 7 | 2 | 2 | 市场部 |
| 14 | 秦十六 | 32 | 研发 | 7800 | 2022-01-02 | 7 | 2 | 1 | 研发部 |
| 15 | 许十七 | 29 | 测试 | 4400 | 2022-02-09 | 8 | 1 | 6 | 人事部 |
| 15 | 许十七 | 29 | 测试 | 4400 | 2022-02-09 | 8 | 1 | 5 | 总经办 |
| 15 | 许十七 | 29 | 测试 | 4400 | 2022-02-09 | 8 | 1 | 4 | 销售部 |
| 15 | 许十七 | 29 | 测试 | 4400 | 2022-02-09 | 8 | 1 | 3 | 财务部 |
| 15 | 许十七 | 29 | 测试 | 4400 | 2022-02-09 | 8 | 1 | 2 | 市场部 |
| 15 | 许十七 | 29 | 测试 | 4400 | 2022-02-09 | 8 | 1 | 1 | 研发部 |
| 16 | 何十八 | 31 | 市场 | 6200 | 2022-03-16 | 8 | 2 | 6 | 人事部 |
| 16 | 何十八 | 31 | 市场 | 6200 | 2022-03-16 | 8 | 2 | 5 | 总经办 |
| 16 | 何十八 | 31 | 市场 | 6200 | 2022-03-16 | 8 | 2 | 4 | 销售部 |
| 16 | 何十八 | 31 | 市场 | 6200 | 2022-03-16 | 8 | 2 | 3 | 财务部 |
| 16 | 何十八 | 31 | 市场 | 6200 | 2022-03-16 | 8 | 2 | 2 | 市场部 |
| 16 | 何十八 | 31 | 市场 | 6200 | 2022-03-16 | 8 | 2 | 1 | 研发部 |
| 17 | 冯十九 | 26 | 销售员 | 4900 | 2022-04-22 | 9 | 1 | 6 | 人事部 |
| 17 | 冯十九 | 26 | 销售员 | 4900 | 2022-04-22 | 9 | 1 | 5 | 总经办 |
| 17 | 冯十九 | 26 | 销售员 | 4900 | 2022-04-22 | 9 | 1 | 4 | 销售部 |
| 17 | 冯十九 | 26 | 销售员 | 4900 | 2022-04-22 | 9 | 1 | 3 | 财务部 |
| 17 | 冯十九 | 26 | 销售员 | 4900 | 2022-04-22 | 9 | 1 | 2 | 市场部 |
| 17 | 冯十九 | 26 | 销售员 | 4900 | 2022-04-22 | 9 | 1 | 1 | 研发部 |
| 18 | 邓二十 | 33 | 人事 | 7200 | 2022-05-29 | 9 | 2 | 6 | 人事部 |
| 18 | 邓二十 | 33 | 人事 | 7200 | 2022-05-29 | 9 | 2 | 5 | 总经办 |
| 18 | 邓二十 | 33 | 人事 | 7200 | 2022-05-29 | 9 | 2 | 4 | 销售部 |
| 18 | 邓二十 | 33 | 人事 | 7200 | 2022-05-29 | 9 | 2 | 3 | 财务部 |
| 18 | 邓二十 | 33 | 人事 | 7200 | 2022-05-29 | 9 | 2 | 2 | 市场部 |
| 18 | 邓二十 | 33 | 人事 | 7200 | 2022-05-29 | 9 | 2 | 1 | 研发部 |
| 19 | 肖二十一 | 28 | 技术支持 | 5300 | 2022-06-04 | 10 | 1 | 6 | 人事部 |
| 19 | 肖二十一 | 28 | 技术支持 | 5300 | 2022-06-04 | 10 | 1 | 5 | 总经办 |
| 19 | 肖二十一 | 28 | 技术支持 | 5300 | 2022-06-04 | 10 | 1 | 4 | 销售部 |
| 19 | 肖二十一 | 28 | 技术支持 | 5300 | 2022-06-04 | 10 | 1 | 3 | 财务部 |
| 19 | 肖二十一 | 28 | 技术支持 | 5300 | 2022-06-04 | 10 | 1 | 2 | 市场部 |
| 19 | 肖二十一 | 28 | 技术支持 | 5300 | 2022-06-04 | 10 | 1 | 1 | 研发部 |
| 20 | 潘二十二 | 34 | 财务 | 6900 | 2022-07-11 | 10 | 2 | 6 | 人事部 |
| 20 | 潘二十二 | 34 | 财务 | 6900 | 2022-07-11 | 10 | 2 | 5 | 总经办 |
| 20 | 潘二十二 | 34 | 财务 | 6900 | 2022-07-11 | 10 | 2 | 4 | 销售部 |
| 20 | 潘二十二 | 34 | 财务 | 6900 | 2022-07-11 | 10 | 2 | 3 | 财务部 |
| 20 | 潘二十二 | 34 | 财务 | 6900 | 2022-07-11 | 10 | 2 | 2 | 市场部 |
| 20 | 潘二十二 | 34 | 财务 | 6900 | 2022-07-11 | 10 | 2 | 1 | 研发部 |
+----+--------------+------+--------------+--------+------------+-----------+---------+----+-----------+
120 rows in set (0.00 sec)
去除重复笛卡尔积
mysql> select * from emp,dept where emp.dept_id = dept.id;
+----+--------------+------+--------------+--------+------------+-----------+---------+----+-----------+
| id | name | age | job | salary | entrydate | managerid | dept_id | id | name |
+----+--------------+------+--------------+--------+------------+-----------+---------+----+-----------+
| 1 | 张三 | 25 | 工程师 | 5000 | 2021-01-01 | 1 | 1 | 1 | 研发部 |
| 2 | 李四 | 30 | 经理 | 8000 | 2020-12-15 | 1 | 2 | 2 | 市场部 |
| 3 | 王五 | 28 | 销售员 | 4000 | 2021-02-10 | 2 | 1 | 1 | 研发部 |
| 4 | 赵六 | 35 | 人事 | 6000 | 2021-03-20 | 2 | 2 | 2 | 市场部 |
| 5 | 刘七 | 27 | 技术支持 | 4500 | 2021-04-05 | 3 | 1 | 1 | 研发部 |
| 6 | 陈八 | 32 | 财务 | 7000 | 2021-05-12 | 3 | 2 | 2 | 市场部 |
| 7 | 杨九 | 29 | 市场 | 5500 | 2021-06-18 | 4 | 1 | 1 | 研发部 |
| 8 | 黄十 | 31 | 运营 | 6500 | 2021-07-25 | 4 | 2 | 2 | 市场部 |
| 9 | 罗十一 | 26 | 设计师 | 4800 | 2021-08-30 | 5 | 1 | 1 | 研发部 |
| 10 | 吴十二 | 33 | 采购 | 7500 | 2021-09-08 | 5 | 2 | 2 | 市场部 |
| 11 | 郑十三 | 28 | 客服 | 4200 | 2021-10-14 | 6 | 1 | 1 | 研发部 |
| 12 | 周十四 | 34 | 行政 | 6800 | 2021-11-21 | 6 | 2 | 2 | 市场部 |
| 13 | 朱十五 | 27 | 品控 | 5200 | 2021-12-27 | 7 | 1 | 1 | 研发部 |
| 14 | 秦十六 | 32 | 研发 | 7800 | 2022-01-02 | 7 | 2 | 2 | 市场部 |
| 15 | 许十七 | 29 | 测试 | 4400 | 2022-02-09 | 8 | 1 | 1 | 研发部 |
| 16 | 何十八 | 31 | 市场 | 6200 | 2022-03-16 | 8 | 2 | 2 | 市场部 |
| 17 | 冯十九 | 26 | 销售员 | 4900 | 2022-04-22 | 9 | 1 | 1 | 研发部 |
| 18 | 邓二十 | 33 | 人事 | 7200 | 2022-05-29 | 9 | 2 | 2 | 市场部 |
| 19 | 肖二十一 | 28 | 技术支持 | 5300 | 2022-06-04 | 10 | 1 | 1 | 研发部 |
| 20 | 潘二十二 | 34 | 财务 | 6900 | 2022-07-11 | 10 | 2 | 2 | 市场部 |
+----+--------------+------+--------------+--------+------------+-----------+---------+----+-----------+
20 rows in set (0.00 sec)
多表查询内连接
mysql> select emp.name,dept.name from emp,dept where emp.dept_id = dept.id;
+--------------+-----------+
| name | name |
+--------------+-----------+
| 张三 | 研发部 |
| 李四 | 市场部 |
| 王五 | 研发部 |
| 赵六 | 市场部 |
| 刘七 | 研发部 |
| 陈八 | 市场部 |
| 杨九 | 研发部 |
| 黄十 | 市场部 |
| 罗十一 | 研发部 |
| 吴十二 | 市场部 |
| 郑十三 | 研发部 |
| 周十四 | 市场部 |
| 朱十五 | 研发部 |
| 秦十六 | 市场部 |
| 许十七 | 研发部 |
| 何十八 | 市场部 |
| 冯十九 | 研发部 |
| 邓二十 | 市场部 |
| 肖二十一 | 研发部 |
| 潘二十二 | 市场部 |
+--------------+-----------+
20 rows in set (0.00 sec)
mysql> select e.name,d.name from emp e,dept d where e.dept_id = d.id;
+--------------+-----------+
| name | name |
+--------------+-----------+
| 张三 | 研发部 |
| 李四 | 市场部 |
| 王五 | 研发部 |
| 赵六 | 市场部 |
| 刘七 | 研发部 |
| 陈八 | 市场部 |
| 杨九 | 研发部 |
| 黄十 | 市场部 |
| 罗十一 | 研发部 |
| 吴十二 | 市场部 |
| 郑十三 | 研发部 |
| 周十四 | 市场部 |
| 朱十五 | 研发部 |
| 秦十六 | 市场部 |
| 许十七 | 研发部 |
| 何十八 | 市场部 |
| 冯十九 | 研发部 |
| 邓二十 | 市场部 |
| 肖二十一 | 研发部 |
| 潘二十二 | 市场部 |
+--------------+-----------+
20 rows in set (0.00 sec)
mysql> select e.name,d.name from emp e inner join dept d on e.dept_id=d.id;
+--------------+-----------+
| name | name |
+--------------+-----------+
| 张三 | 研发部 |
| 李四 | 市场部 |
| 王五 | 研发部 |
| 赵六 | 市场部 |
| 刘七 | 研发部 |
| 陈八 | 市场部 |
| 杨九 | 研发部 |
| 黄十 | 市场部 |
| 罗十一 | 研发部 |
| 吴十二 | 市场部 |
| 郑十三 | 研发部 |
| 周十四 | 市场部 |
| 朱十五 | 研发部 |
| 秦十六 | 市场部 |
| 许十七 | 研发部 |
| 何十八 | 市场部 |
| 冯十九 | 研发部 |
| 邓二十 | 市场部 |
| 肖二十一 | 研发部 |
| 潘二十二 | 市场部 |
+--------------+-----------+
20 rows in set (0.00 sec)
mysql> select e.*,d.name from emp e left outer join dept d on e.dept_id=d.id;
+----+--------------+------+--------------+--------+------------+-----------+---------+-----------+
| id | name | age | job | salary | entrydate | managerid | dept_id | name |
+----+--------------+------+--------------+--------+------------+-----------+---------+-----------+
| 1 | 张三 | 25 | 工程师 | 5000 | 2021-01-01 | 1 | 1 | 研发部 |
| 2 | 李四 | 30 | 经理 | 8000 | 2020-12-15 | 1 | 2 | 市场部 |
| 3 | 王五 | 28 | 销售员 | 4000 | 2021-02-10 | 2 | 1 | 研发部 |
| 4 | 赵六 | 35 | 人事 | 6000 | 2021-03-20 | 2 | 2 | 市场部 |
| 5 | 刘七 | 27 | 技术支持 | 4500 | 2021-04-05 | 3 | 1 | 研发部 |
| 6 | 陈八 | 32 | 财务 | 7000 | 2021-05-12 | 3 | 2 | 市场部 |
| 7 | 杨九 | 29 | 市场 | 5500 | 2021-06-18 | 4 | 1 | 研发部 |
| 8 | 黄十 | 31 | 运营 | 6500 | 2021-07-25 | 4 | 2 | 市场部 |
| 9 | 罗十一 | 26 | 设计师 | 4800 | 2021-08-30 | 5 | 1 | 研发部 |
| 10 | 吴十二 | 33 | 采购 | 7500 | 2021-09-08 | 5 | 2 | 市场部 |
| 11 | 郑十三 | 28 | 客服 | 4200 | 2021-10-14 | 6 | 1 | 研发部 |
| 12 | 周十四 | 34 | 行政 | 6800 | 2021-11-21 | 6 | 2 | 市场部 |
| 13 | 朱十五 | 27 | 品控 | 5200 | 2021-12-27 | 7 | 1 | 研发部 |
| 14 | 秦十六 | 32 | 研发 | 7800 | 2022-01-02 | 7 | 2 | 市场部 |
| 15 | 许十七 | 29 | 测试 | 4400 | 2022-02-09 | 8 | 1 | 研发部 |
| 16 | 何十八 | 31 | 市场 | 6200 | 2022-03-16 | 8 | 2 | 市场部 |
| 17 | 冯十九 | 26 | 销售员 | 4900 | 2022-04-22 | 9 | 1 | 研发部 |
| 18 | 邓二十 | 33 | 人事 | 7200 | 2022-05-29 | 9 | 2 | 市场部 |
| 19 | 肖二十一 | 28 | 技术支持 | 5300 | 2022-06-04 | 10 | 1 | 研发部 |
| 20 | 潘二十二 | 34 | 财务 | 6900 | 2022-07-11 | 10 | 2 | 市场部 |
+----+--------------+------+--------------+--------+------------+-----------+---------+-----------+
20 rows in set (0.00 sec)
mysql> select e.*,d.name from emp e right outer join dept d on e.dept_id=d.id;
+------+--------------+------+--------------+--------+------------+-----------+---------+-----------+
| id | name | age | job | salary | entrydate | managerid | dept_id | name |
+------+--------------+------+--------------+--------+------------+-----------+---------+-----------+
| 1 | 张三 | 25 | 工程师 | 5000 | 2021-01-01 | 1 | 1 | 研发部 |
| 3 | 王五 | 28 | 销售员 | 4000 | 2021-02-10 | 2 | 1 | 研发部 |
| 5 | 刘七 | 27 | 技术支持 | 4500 | 2021-04-05 | 3 | 1 | 研发部 |
| 7 | 杨九 | 29 | 市场 | 5500 | 2021-06-18 | 4 | 1 | 研发部 |
| 9 | 罗十一 | 26 | 设计师 | 4800 | 2021-08-30 | 5 | 1 | 研发部 |
| 11 | 郑十三 | 28 | 客服 | 4200 | 2021-10-14 | 6 | 1 | 研发部 |
| 13 | 朱十五 | 27 | 品控 | 5200 | 2021-12-27 | 7 | 1 | 研发部 |
| 15 | 许十七 | 29 | 测试 | 4400 | 2022-02-09 | 8 | 1 | 研发部 |
| 17 | 冯十九 | 26 | 销售员 | 4900 | 2022-04-22 | 9 | 1 | 研发部 |
| 19 | 肖二十一 | 28 | 技术支持 | 5300 | 2022-06-04 | 10 | 1 | 研发部 |
| 2 | 李四 | 30 | 经理 | 8000 | 2020-12-15 | 1 | 2 | 市场部 |
| 4 | 赵六 | 35 | 人事 | 6000 | 2021-03-20 | 2 | 2 | 市场部 |
| 6 | 陈八 | 32 | 财务 | 7000 | 2021-05-12 | 3 | 2 | 市场部 |
| 8 | 黄十 | 31 | 运营 | 6500 | 2021-07-25 | 4 | 2 | 市场部 |
| 10 | 吴十二 | 33 | 采购 | 7500 | 2021-09-08 | 5 | 2 | 市场部 |
| 12 | 周十四 | 34 | 行政 | 6800 | 2021-11-21 | 6 | 2 | 市场部 |
| 14 | 秦十六 | 32 | 研发 | 7800 | 2022-01-02 | 7 | 2 | 市场部 |
| 16 | 何十八 | 31 | 市场 | 6200 | 2022-03-16 | 8 | 2 | 市场部 |
| 18 | 邓二十 | 33 | 人事 | 7200 | 2022-05-29 | 9 | 2 | 市场部 |
| 20 | 潘二十二 | 34 | 财务 | 6900 | 2022-07-11 | 10 | 2 | 市场部 |
| NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 财务部 |
| NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 销售部 |
| NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 总经办 |
| NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 人事部 |
+------+--------------+------+--------------+--------+------------+-----------+---------+-----------+
24 rows in set (0.00 sec)
mysql> select a.name,b.name from emp a, emp b where a.managerid=b.id;
+--------------+-----------+
| name | name |
+--------------+-----------+
| 张三 | 张三 |
| 李四 | 张三 |
| 王五 | 李四 |
| 赵六 | 李四 |
| 刘七 | 王五 |
| 陈八 | 王五 |
| 杨九 | 赵六 |
| 黄十 | 赵六 |
| 罗十一 | 刘七 |
| 吴十二 | 刘七 |
| 郑十三 | 陈八 |
| 周十四 | 陈八 |
| 朱十五 | 杨九 |
| 秦十六 | 杨九 |
| 许十七 | 黄十 |
| 何十八 | 黄十 |
| 冯十九 | 罗十一 |
| 邓二十 | 罗十一 |
| 肖二十一 | 吴十二 |
| 潘二十二 | 吴十二 |
+--------------+-----------+
20 rows in set (0.00 sec)
联合查询
mysql> select * from emp where salary < 5000 union all select * from emp where age>50;
+----+-----------+------+--------------+--------+------------+-----------+---------+
| id | name | age | job | salary | entrydate | managerid | dept_id |
+----+-----------+------+--------------+--------+------------+-----------+---------+
| 3 | 王五 | 28 | 销售员 | 4000 | 2021-02-10 | 2 | 1 |
| 5 | 刘七 | 27 | 技术支持 | 4500 | 2021-04-05 | 3 | 1 |
| 9 | 罗十一 | 26 | 设计师 | 4800 | 2021-08-30 | 5 | 1 |
| 11 | 郑十三 | 28 | 客服 | 4200 | 2021-10-14 | 6 | 1 |
| 15 | 许十七 | 29 | 测试 | 4400 | 2022-02-09 | 8 | 1 |
| 17 | 冯十九 | 26 | 销售员 | 4900 | 2022-04-22 | 9 | 1 |
+----+-----------+------+--------------+--------+------------+-----------+---------+
6 rows in set (0.00 sec)
union和union all的区别是 all会将所有数据都添加
mysql> select * from emp where salary < 5000 union select * from emp where age>50;
+----+-----------+------+--------------+--------+------------+-----------+---------+
| id | name | age | job | salary | entrydate | managerid | dept_id |
+----+-----------+------+--------------+--------+------------+-----------+---------+
| 3 | 王五 | 28 | 销售员 | 4000 | 2021-02-10 | 2 | 1 |
| 5 | 刘七 | 27 | 技术支持 | 4500 | 2021-04-05 | 3 | 1 |
| 9 | 罗十一 | 26 | 设计师 | 4800 | 2021-08-30 | 5 | 1 |
| 11 | 郑十三 | 28 | 客服 | 4200 | 2021-10-14 | 6 | 1 |
| 15 | 许十七 | 29 | 测试 | 4400 | 2022-02-09 | 8 | 1 |
| 17 | 冯十九 | 26 | 销售员 | 4900 | 2022-04-22 | 9 | 1 |
+----+-----------+------+--------------+--------+------------+-----------+---------+
6 rows in set (0.01 sec)
联合查询第一个查询的列数必须和第二个查询的列数相同
子查询
mysql> select * from emp where id = (select id from dept where name ='销售部');
+----+--------+------+--------+--------+------------+-----------+---------+
| id | name | age | job | salary | entrydate | managerid | dept_id |
+----+--------+------+--------+--------+------------+-----------+---------+
| 4 | 赵六 | 35 | 人事 | 6000 | 2021-03-20 | 2 | 2 |
+----+--------+------+--------+--------+------------+-----------+---------+
1 row in set (0.00 sec)
mysql> select * from emp where entrydate > (select entrydate from emp where name = '赵六');
+----+--------------+------+--------------+--------+------------+-----------+---------+
| id | name | age | job | salary | entrydate | managerid | dept_id |
+----+--------------+------+--------------+--------+------------+-----------+---------+
| 5 | 刘七 | 27 | 技术支持 | 4500 | 2021-04-05 | 3 | 1 |
| 6 | 陈八 | 32 | 财务 | 7000 | 2021-05-12 | 3 | 2 |
| 7 | 杨九 | 29 | 市场 | 5500 | 2021-06-18 | 4 | 1 |
| 8 | 黄十 | 31 | 运营 | 6500 | 2021-07-25 | 4 | 2 |
| 9 | 罗十一 | 26 | 设计师 | 4800 | 2021-08-30 | 5 | 1 |
| 10 | 吴十二 | 33 | 采购 | 7500 | 2021-09-08 | 5 | 2 |
| 11 | 郑十三 | 28 | 客服 | 4200 | 2021-10-14 | 6 | 1 |
| 12 | 周十四 | 34 | 行政 | 6800 | 2021-11-21 | 6 | 2 |
| 13 | 朱十五 | 27 | 品控 | 5200 | 2021-12-27 | 7 | 1 |
| 14 | 秦十六 | 32 | 研发 | 7800 | 2022-01-02 | 7 | 2 |
| 15 | 许十七 | 29 | 测试 | 4400 | 2022-02-09 | 8 | 1 |
| 16 | 何十八 | 31 | 市场 | 6200 | 2022-03-16 | 8 | 2 |
| 17 | 冯十九 | 26 | 销售员 | 4900 | 2022-04-22 | 9 | 1 |
| 18 | 邓二十 | 33 | 人事 | 7200 | 2022-05-29 | 9 | 2 |
| 19 | 肖二十一 | 28 | 技术支持 | 5300 | 2022-06-04 | 10 | 1 |
| 20 | 潘二十二 | 34 | 财务 | 6900 | 2022-07-11 | 10 | 2 |
+----+--------------+------+--------------+--------+------------+-----------+---------+
16 rows in set (0.00 sec)
mysql> select * from emp where entrydate > (select entrydate from emp where name = '赵六');
列子查询
查询出了一列多行的数据 需要使用列子查询等数据
mysql> select * from emp where dept_id in (select id from dept where name = '销售部' or name = '市场部');
+----+--------------+------+--------+--------+------------+-----------+---------+
| id | name | age | job | salary | entrydate | managerid | dept_id |
+----+--------------+------+--------+--------+------------+-----------+---------+
| 2 | 李四 | 30 | 经理 | 8000 | 2020-12-15 | 1 | 2 |
| 4 | 赵六 | 35 | 人事 | 6000 | 2021-03-20 | 2 | 2 |
| 6 | 陈八 | 32 | 财务 | 7000 | 2021-05-12 | 3 | 2 |
| 8 | 黄十 | 31 | 运营 | 6500 | 2021-07-25 | 4 | 2 |
| 10 | 吴十二 | 33 | 采购 | 7500 | 2021-09-08 | 5 | 2 |
| 12 | 周十四 | 34 | 行政 | 6800 | 2021-11-21 | 6 | 2 |
| 14 | 秦十六 | 32 | 研发 | 7800 | 2022-01-02 | 7 | 2 |
| 16 | 何十八 | 31 | 市场 | 6200 | 2022-03-16 | 8 | 2 |
| 18 | 邓二十 | 33 | 人事 | 7200 | 2022-05-29 | 9 | 2 |
| 20 | 潘二十二 | 34 | 财务 | 6900 | 2022-07-11 | 10 | 2 |
+----+--------------+------+--------+--------+------------+-----------+---------+
10 rows in set (0.01 sec)
mysql> select * from emp where salary > any (select salary from emp where dept_id = (select id from dept where name = '研发部'));
+----+--------------+------+--------------+--------+------------+-----------+---------+
| id | name | age | job | salary | entrydate | managerid | dept_id |
+----+--------------+------+--------------+--------+------------+-----------+---------+
| 1 | 张三 | 25 | 工程师 | 5000 | 2021-01-01 | 1 | 1 |
| 2 | 李四 | 30 | 经理 | 8000 | 2020-12-15 | 1 | 2 |
| 4 | 赵六 | 35 | 人事 | 6000 | 2021-03-20 | 2 | 2 |
| 5 | 刘七 | 27 | 技术支持 | 4500 | 2021-04-05 | 3 | 1 |
| 6 | 陈八 | 32 | 财务 | 7000 | 2021-05-12 | 3 | 2 |
| 7 | 杨九 | 29 | 市场 | 5500 | 2021-06-18 | 4 | 1 |
| 8 | 黄十 | 31 | 运营 | 6500 | 2021-07-25 | 4 | 2 |
| 9 | 罗十一 | 26 | 设计师 | 4800 | 2021-08-30 | 5 | 1 |
| 10 | 吴十二 | 33 | 采购 | 7500 | 2021-09-08 | 5 | 2 |
| 11 | 郑十三 | 28 | 客服 | 4200 | 2021-10-14 | 6 | 1 |
| 12 | 周十四 | 34 | 行政 | 6800 | 2021-11-21 | 6 | 2 |
| 13 | 朱十五 | 27 | 品控 | 5200 | 2021-12-27 | 7 | 1 |
| 14 | 秦十六 | 32 | 研发 | 7800 | 2022-01-02 | 7 | 2 |
| 15 | 许十七 | 29 | 测试 | 4400 | 2022-02-09 | 8 | 1 |
| 16 | 何十八 | 31 | 市场 | 6200 | 2022-03-16 | 8 | 2 |
| 17 | 冯十九 | 26 | 销售员 | 4900 | 2022-04-22 | 9 | 1 |
| 18 | 邓二十 | 33 | 人事 | 7200 | 2022-05-29 | 9 | 2 |
| 19 | 肖二十一 | 28 | 技术支持 | 5300 | 2022-06-04 | 10 | 1 |
| 20 | 潘二十二 | 34 | 财务 | 6900 | 2022-07-11 | 10 | 2 |
| 21 | 张三 | 28 | 经理 | 10000 | 2022-01-01 | 1 | 1 |
| 22 | 李四 | 35 | 主管 | 8000 | 2022-02-01 | 2 | 2 |
| 23 | 王五 | 25 | 员工 | 5000 | 2022-03-01 | 1 | 3 |
| 24 | 赵六 | 30 | 员工 | 5000 | 2022-04-01 | 2 | 4 |
| 25 | 刘七 | 32 | 员工 | 5000 | 2022-05-01 | 1 | 5 |
| 26 | 陈八 | 28 | 员工 | 5000 | 2022-06-01 | 2 | 6 |
| 27 | 杨九 | 29 | 员工 | 5000 | 2022-07-01 | 1 | 1 |
| 28 | 黄十 | 27 | 员工 | 5000 | 2022-08-01 | 2 | 2 |
| 29 | 周十一 | 31 | 员工 | 5000 | 2022-09-01 | 1 | 3 |
| 30 | 吴十二 | 26 | 员工 | 5000 | 2022-10-01 | 2 | 4 |
| 31 | 郑十三 | 33 | 员工 | 5000 | 2022-11-01 | 1 | 5 |
| 32 | 孙十四 | 28 | 员工 | 5000 | 2022-12-01 | 2 | 6 |
| 33 | 钱十五 | 30 | 员工 | 5000 | 2023-01-01 | 1 | 1 |
| 34 | 冯十六 | 29 | 员工 | 5000 | 2023-02-01 | 2 | 2 |
| 35 | 朱十七 | 27 | 员工 | 5000 | 2023-03-01 | 1 | 3 |
| 36 | 徐十八 | 32 | 员工 | 5000 | 2023-04-01 | 2 | 4 |
| 37 | 林十九 | 25 | 员工 | 5000 | 2023-05-01 | 1 | 5 |
| 38 | 许二十 | 31 | 员工 | 5000 | 2023-06-01 | 2 | 6 |
| 39 | 尹二一 | 28 | 员工 | 5000 | 2023-07-01 | 1 | 1 |
| 40 | 姚二二 | 27 | 员工 | 5000 | 2023-08-01 | 2 | 2 |
+----+--------------+------+--------------+--------+------------+-----------+---------+
39 rows in set (0.00 sec)
mysql> select * from emp where (salary,managerid) =(select salary,managerid from emp where name = '周十一');
+----+-----------+------+-----------+--------+------------+-----------+---------+
| id | name | age | job | salary | entrydate | managerid | dept_id |
+----+-----------+------+-----------+--------+------------+-----------+---------+
| 1 | 张三 | 25 | 工程师 | 5000 | 2021-01-01 | 1 | 1 |
| 23 | 王五 | 25 | 员工 | 5000 | 2022-03-01 | 1 | 3 |
| 25 | 刘七 | 32 | 员工 | 5000 | 2022-05-01 | 1 | 5 |
| 27 | 杨九 | 29 | 员工 | 5000 | 2022-07-01 | 1 | 1 |
| 29 | 周十一 | 31 | 员工 | 5000 | 2022-09-01 | 1 | 3 |
| 31 | 郑十三 | 33 | 员工 | 5000 | 2022-11-01 | 1 | 5 |
| 33 | 钱十五 | 30 | 员工 | 5000 | 2023-01-01 | 1 | 1 |
| 35 | 朱十七 | 27 | 员工 | 5000 | 2023-03-01 | 1 | 3 |
| 37 | 林十九 | 25 | 员工 | 5000 | 2023-05-01 | 1 | 5 |
| 39 | 尹二一 | 28 | 员工 | 5000 | 2023-07-01 | 1 | 1 |
+----+-----------+------+-----------+--------+------------+-----------+---------+
10 rows in set (0.00 sec)
查询相同的job和salary
mysql> select * from emp where (job,salary) in (select job,salary from emp where name = '王五' or name = '林十九');
+----+-----------+------+-----------+--------+------------+-----------+---------+
| id | name | age | job | salary | entrydate | managerid | dept_id |
+----+-----------+------+-----------+--------+------------+-----------+---------+
| 3 | 王五 | 28 | 销售员 | 4000 | 2021-02-10 | 2 | 1 |
| 23 | 王五 | 25 | 员工 | 5000 | 2022-03-01 | 1 | 3 |
| 24 | 赵六 | 30 | 员工 | 5000 | 2022-04-01 | 2 | 4 |
| 25 | 刘七 | 32 | 员工 | 5000 | 2022-05-01 | 1 | 5 |
| 26 | 陈八 | 28 | 员工 | 5000 | 2022-06-01 | 2 | 6 |
| 27 | 杨九 | 29 | 员工 | 5000 | 2022-07-01 | 1 | 1 |
| 28 | 黄十 | 27 | 员工 | 5000 | 2022-08-01 | 2 | 2 |
| 29 | 周十一 | 31 | 员工 | 5000 | 2022-09-01 | 1 | 3 |
| 30 | 吴十二 | 26 | 员工 | 5000 | 2022-10-01 | 2 | 4 |
| 31 | 郑十三 | 33 | 员工 | 5000 | 2022-11-01 | 1 | 5 |
| 32 | 孙十四 | 28 | 员工 | 5000 | 2022-12-01 | 2 | 6 |
| 33 | 钱十五 | 30 | 员工 | 5000 | 2023-01-01 | 1 | 1 |
| 34 | 冯十六 | 29 | 员工 | 5000 | 2023-02-01 | 2 | 2 |
| 35 | 朱十七 | 27 | 员工 | 5000 | 2023-03-01 | 1 | 3 |
| 36 | 徐十八 | 32 | 员工 | 5000 | 2023-04-01 | 2 | 4 |
| 37 | 林十九 | 25 | 员工 | 5000 | 2023-05-01 | 1 | 5 |
| 38 | 许二十 | 31 | 员工 | 5000 | 2023-06-01 | 2 | 6 |
| 39 | 尹二一 | 28 | 员工 | 5000 | 2023-07-01 | 1 | 1 |
| 40 | 姚二二 | 27 | 员工 | 5000 | 2023-08-01 | 2 | 2 |
+----+-----------+------+-----------+--------+------------+-----------+---------+
19 rows in set (0.00 sec)
大于20
mysql> select e.name,e.age,e.job,d.name from emp e left outer join dept d on e.dept_id=d.id where e.age<30;
+--------------+------+--------------+-----------+
| name | age | job | name |
+--------------+------+--------------+-----------+
| 张三 | 25 | 工程师 | 研发部 |
| 王五 | 28 | 销售员 | 研发部 |
| 刘七 | 27 | 技术支持 | 研发部 |
| 杨九 | 29 | 市场 | 研发部 |
| 罗十一 | 26 | 设计师 | 研发部 |
| 郑十三 | 28 | 客服 | 研发部 |
| 朱十五 | 27 | 品控 | 研发部 |
| 许十七 | 29 | 测试 | 研发部 |
| 冯十九 | 26 | 销售员 | 研发部 |
| 肖二十一 | 28 | 技术支持 | 研发部 |
| 张三 | 28 | 经理 | 研发部 |
| 王五 | 25 | 员工 | 财务部 |
| 陈八 | 28 | 员工 | 人事部 |
| 杨九 | 29 | 员工 | 研发部 |
| 黄十 | 27 | 员工 | 市场部 |
| 吴十二 | 26 | 员工 | 销售部 |
| 孙十四 | 28 | 员工 | 人事部 |
| 冯十六 | 29 | 员工 | 市场部 |
| 朱十七 | 27 | 员工 | 财务部 |
| 林十九 | 25 | 员工 | 总经办 |
| 尹二一 | 28 | 员工 | 研发部 |
| 姚二二 | 27 | 员工 | 市场部 |
| 张四 | 25 | 经理 | NULL |
+--------------+------+--------------+-----------+
23 rows in set (0.00 sec)
mysql> select e.name,e.age,e.job,d.name from emp e left outer join dept d on e.dept_id=d.id where e.age<30;
mysql> select e.*,s.grade from emp e, salgrade s where dept_id = (select id from dept where name ='研发部') and s.losal <= e.salarry and s.hisal>=e.salary;
+------+--------------+------+--------------+--------+------------+-----------+---------+-------+
| id | name | age | job | salary | entrydate | managerid | dept_id | grade |
+------+--------------+------+--------------+--------+------------+-----------+---------+-------+
| 39 | 尹二一 | 28 | 员工 | 5000 | 2023-07-01 | 1 | 1 | 2 |
| 33 | 钱十五 | 30 | 员工 | 5000 | 2023-01-01 | 1 | 1 | 2 |
| 27 | 杨九 | 29 | 员工 | 5000 | 2022-07-01 | 1 | 1 | 2 |
| 17 | 冯十九 | 26 | 销售员 | 4900 | 2022-04-22 | 9 | 1 | 2 |
| 15 | 许十七 | 29 | 测试 | 4400 | 2022-02-09 | 8 | 1 | 2 |
| 11 | 郑十三 | 28 | 客服 | 4200 | 2021-10-14 | 6 | 1 | 2 |
| 9 | 罗十一 | 26 | 设计师 | 4800 | 2021-08-30 | 5 | 1 | 2 |
| 5 | 刘七 | 27 | 技术支持 | 4500 | 2021-04-05 | 3 | 1 | 2 |
| 3 | 王五 | 28 | 销售员 | 4000 | 2021-02-10 | 2 | 1 | 2 |
| 1 | 张三 | 25 | 工程师 | 5000 | 2021-01-01 | 1 | 1 | 2 |
| 19 | 肖二十一 | 28 | 技术支持 | 5300 | 2022-06-04 | 10 | 1 | 3 |
| 13 | 朱十五 | 27 | 品控 | 5200 | 2021-12-27 | 7 | 1 | 3 |
| 7 | 杨九 | 29 | 市场 | 5500 | 2021-06-18 | 4 | 1 | 3 |
| 21 | 张三 | 28 | 经理 | 10000 | 2022-01-01 | 1 | 1 | 4 |
+------+--------------+------+--------------+--------+------------+-----------+---------+-------+