mysql怎么把两个表单独连接查询_在Mysql中,两张表格之间如何创建内连接?

之前一直和大家分享的是单表查询,以后单表的各种应用,今天开始,我们和大家一起学习,多表如何连接并查询的。我们先一步一步来,今天先和大家分享一下,两张表格之前如何连接。

既然说到两张表格的连接,那么首先得先有两张表格,还是用我们之前一直用的两张表格,一张员工表emp,一张部门表dept。先连接数据库,进入到数据库,暂时我们先用这两张表格,待后续聊到多表的时候,我们再一起新建一些表格,那时正好也一起复习一下之前的内容:

4f2a41671854f30bd90cea32a104577a.png连接数据库

先来看一下两张表格内连接的语法:

select 列 from 表1 inner join 表2 on 过滤条件;

练习:查询所有员工的姓名及对应所在的部门;

分析:

1、查询的是什么?姓名及所在部门

2、怎么查?需要两张表格的信息,员工表的姓名及部门表的部门名称;

那我们先按照之前我们学习到的,先写一下代码:

select emp.ename,dept.dnamefrom emp,dept;

b328df31516b51e89a54ca3f6902be78.png查询员工信息

这个结果有问题么?有的,因为这个将每个人都对应了所有的部门,这个现象叫产生了笛卡尔积,所以我们要消除笛卡尔积,如何操作呢?

select emp.ename,dept.dnamefrom emp inner join depton emp.deptno = dept.did;

再次运行:

532dda837409d4e7cb9afeac9eeb70d9.png查询员工姓名及部门

这样就能正常展现了,那实际应用过程中,我们可以简写代码,如下:

select emp.ename,dept.dnamefrom emp,deptwhere emp.deptno = dept.did;

更次运行一下:

f802043c2a526b543ee4dded389122e0.png简写代码,查询信息

这样结果与之前的结果是一样的,所以实际应用中,可以这样简写。当然,若是表名过长,也可以起个别名,这样更方便些:

select e.ename,d.dnamefrom emp e,dept dwhere e.deptno = d.did;

ff5ab382fbcbbfe11225f48bff634261.png给表设置另名,并查询信息

运行之后,依然是一样的结果,但是这样用起来更为简单化,怎么样?两张表格的内连接学会了么?可能会有些复杂,这里和大家整理了一个口诀:

1、连接之前,写先from,若是表名过长,可使用别名;

2、可以使用where连接两个表中的主外键;

3、若是使用标准的内连接,则将“,”修改为inner join,将where修改为on;

这些就是关于mysql中,两个表的内连接用法,大家理解了么?若是有什么问题,欢迎留言或私信我哦,我们一起分享,一起学习。明天会跟大家说一下外连接如何使用,各位想要了解么

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值