mysql全外连接和笛卡尔积_数据库(join) 内连接、外连接、笛卡尔积

本文介绍了数据库连接查询的基本概念,包括内连接、外连接和笛卡尔积。通过示例详细阐述了内连接的隐式和显示形式,以及左连接、右连接和全连接的差异。同时,解释了MySQL中全连接的实现方法,并给出了笛卡尔积的定义和示例。最后,讨论了连接查询和子查询在效率和使用场景上的区别。
摘要由CSDN通过智能技术生成

今天,重刷了刷leetcode数据库的题目,对数据库连接查询做一个记录。

数据库(join) 内连接、外连接、笛卡尔积

内连接(自身连接)

内连接有隐式内连接和显示内连接两种:

隐式(无join),from后跟多个表名,生成的中间临时表是全部笛卡尔积。最后用where条件筛选

例如:

select A.Name

from Employee as A, Employee as B

where A.ManagerId=B.Id and A.Salary>B.Salary

显示(有join),中间临时表是经过ON子句过滤后的笛卡尔积。最后用where条件筛选

例如:a [INNER] JOIN b ON a.id=b.id

select A.name as Employee

from Employee As A inner join Employee as B on A.ManagerId=B.Id

where A.Salary>B.Salary

差异:隐式生成的是全部笛卡尔积,连接时生成的中间临时表更大。on条件是生成中间临时表的过滤条件;where条件是在临时表生成好后,再对临时表进行过滤的条件。

外连接

外连接有左连接、右连接、全连接三种:

左连接 a LEFT JOIN b ON a.id=b.id

左边为主表,保留所有行(即使在右表没有匹配的行),右表输出满足 on 条件的行,不满足的输出null

select A.FirstName, A.LastName, B.City, B.State</

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值