MySQL的LEFT JOIN、RIGHT JOIN、INNER JOIN你真的了解么

MySQL中可以对两个表中数据做连接查询,就是左连接、右连接和内连接,那么这三者之间有什么区别呢?

LEFT JOIN:

左连接,指的是拿左边表的每一行数据和右边表的所有行一一对比,满足条件即打印出来;特点在于如果对于左表的某一行和右表所有数据都不满足条件,也会返回一条数据,例如:

学生表student
学号(SID)姓名(NAME)年龄(AGE)
01刘小华18
02周星星19
03谢安琪20
成绩表(sc)
学号(SID)课程号(CID)成绩(SCORE)
010199
010288
020290

那么select * from student left join sc on student.SID = sc.SID输出如下:可以看到,即使谢安琪没有成绩,但是也会打印这条记录

学生成绩左连接查询
学号(SID)姓名(NAME)年龄(AGE)学号1(SID1)课程号(CID)成绩(SCORE)
01刘小华18010199
01刘小华18010288
02周星星19020290
03谢安琪20nullnullnull

右连接:

意思与左连接相反,拿右表中的每一行和左表中的所有行一一比较,以右表为准,譬如上述表如果用右连接的话,则没有谢安琪这条记录了,因为右表中没有SID为03的记录,所以只会查出3条记录

内连接:

内连接比较的是共有,如果上述表用内连接查询的话,结果和右连接是一样的,区别在于内连接一定会返回共有的部分,如果左表中的某一行对应右表中所有行条件不成立则不输出该条记录,同理如果对于右表中的某一行对应左表中的所有行条件不成立,也不会输出这一条,即要么输出两个表都有的记录,要么不输出

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值