MySQL多表查询的代码怎么写

发布时间:2023-04-18 15:50:26 作者:iii
来源:亿速云 阅读:78

这篇文章主要介绍“MySQL多表查询的代码怎么写”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL多表查询的代码怎么写”文章能帮助大家解决问题。

多表查询

内连接查询

-- 隐式内连接
SELECT 字段列表 FROM 表1,表2… WHERE 条件;

-- 显示内连接
SELECT 字段列表 FROM 表1 [INNER] JOIN 表2 ON 条件;

内连接相当于查询 A B 交集数据

MySQL多表查询的代码怎么写

SELECT
	*
FROM
	emp,
	dept
WHERE
	emp.dep_id = dept.did;

执行上述语句结果如下:

MySQL多表查询的代码怎么写

SELECT
	emp. NAME,
	emp.gender,
	dept.dname
FROM
	emp,
	dept
WHERE
	emp.dep_id = dept.did;

执行语句结果如下:

MySQL多表查询的代码怎么写

上面语句中使用表名指定字段所属有点麻烦,sql也支持给表指别名,上述语句可以改进为

SELECT
	t1. NAME,
	t1.gender,
	t2.dname
FROM
	emp t1,
	dept t2
WHERE
	t1.dep_id = t2.did;
select * from emp inner join dept on emp.dep_id = dept.did;
-- 上面语句中的inner可以省略,可以书写为如下语句
select * from emp  join dept on emp.dep_id = dept.did;

执行结果如下:

MySQL多表查询的代码怎么写

外连接查询

-- 左外连接
SELECT 字段列表 FROM 表1 LEFT [OUTER] JOIN 表2 ON 条件;

-- 右外连接
SELECT 字段列表 FROM 表1 RIGHT [OUTER] JOIN 表2 ON 条件;

左外连接:相当于查询A表所有数据和交集部分数据

右外连接:相当于查询B表所有数据和交集部分数据

MySQL多表查询的代码怎么写

select * from emp left join dept on emp.dep_id = dept.did;

执行语句结果如下:

MySQL多表查询的代码怎么写

结果显示查询到了左表(emp)中所有的数据及两张表能关联的数据。

select * from emp right join dept on emp.dep_id = dept.did;

执行语句结果如下:

MySQL多表查询的代码怎么写

结果显示查询到了右表(dept)中所有的数据及两张表能关联的数据。

要查询出部门表中所有的数据,也可以通过左外连接实现,只需要将两个表的位置进行互换:

select * from dept left join emp on emp.dep_id = dept.did;

子查询

select salary from emp where name = '猪八戒'

第一步:查询工资高于猪八戒的员工信息

select * from emp where salary > 3600;

第二步中的3600可以通过第一步的sql查询出来,所以将3600用第一步的sql语句进行替换

select * from emp where salary > (select salary from emp where name = '猪八戒');

这就是查询语句中嵌套查询语句。

-- 查询 '财务部' 或者 '市场部' 所有的员工的部门did
select did from dept where dname = '财务部' or dname = '市场部';

select * from emp where dep_id in (select did from dept where dname = '财务部' or dname = '市场部');
-- 查询入职日期是 '2011-11-11' 之后的员工信息
select * from emp where join_date > '2011-11-11' ;
-- 将上面语句的结果作为虚拟表和dept表进行内连接查询
select * from (select * from emp where join_date > '2011-11-11' ) t1, dept where t1.dep_id = dept.did;

关于“MySQL多表查询的代码怎么写”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

推荐阅读:
  1. MySQL中InnoDB存储引擎架构的示例分析
  2. Python操作MySQL如何获取单个表的字段名和信息

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mysql

上一篇:VUE中的Proxy代理怎么应用

下一篇:mysql怎么创建表设置表主键id从1开始自增

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》