MySQL表连接查询基础

一、表连接查询的用途

当需要同时显示多个表的字段时,就可以用表连接来实现这样的功能。表连接分为内连接和外连接。内连接仅选出两张表中互相匹配的记录,而外连接会选出其他不匹配的记录。

二、示例

以下面两张表为示范:

表名:teacher_table
这里写图片描述

建表语句:

create table teacher_table(
    teacher_id int not null auto_increment primary key,
    teacher_name varchar(20),
    phone_number varchar(20),
);

表名:student_table
这里写图片描述
建表语句:

create table student_table(
    id int not null auto_increment primary key,
    name varchar(20),
    teacher int,
    foreign key(teacher) references teacher_table(teacher_id) on 
        delete set null on update cascade
    );

1、内连接示例

表连接查询语句语法如下:

select column1,column2... 
from table1,table2...
[where condition];

其中,column为待查询的列名,table为需要引用的表。
如果两个表中有相同的列名,则需要在这些同名列之间使用表别名前缀或表名前缀作为限制,以免混淆。

例:
select 
    name,teacher_name 
from 
    teacher_table t,student_table s 
where 
    s.teacher = t.teacher_id;

执行结果:
这里写图片描述

2、外连接

外连接分为左外连接和右外连接,具体定义为:

左连接:包含所有的左边表中的记录甚至是右边表中没有和它匹配的记录。
右连接:包含所有的右边表中的记录甚至是左边表中没有和它匹配的记录。

左连接查询示例:
select 
    teacher_name,name 
from 
    teacher_table t left join student_table s 
on 
    t.teacher_id = s.teacher;

查询结果:
这里写图片描述

右连接和左连接类似,两者可以互相转换,例如上面的例子可以改写为:

select 
    teacher_name,name 
from 
    student_table s  right join teacher_table t
on 
     s.teacher = t.teacher_id;

查询结果同上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值