SQL中,表之间的左联和右联是什么意思
首先来看张图片:
定义:
左联:首先取出A表中所有数据,然后再加上A、B表通过关联字段key查询到的数据
右联:首先取出B表中所有数据,然后再加上A、B表通过关联字段key查询到的数据
内联:查询A、B表通过关联字段key查询到的数据
非关联字段key的数据:当A表为主表时,在B表中该关联字段key为空值的数据为非关联字段
表关联是在SQL中非常常用的东西
join全连接:查找左表(主表)和右表(子表)都存在的数据
left join左联接:查找左表(主表)为查找全集,右表(子表)存在的关联出来,不存在的为NULL。
right join右连接:刚好和left join相反
full join全集关联:相当于把left join 和right join 综合起来,即左表(主表)和右表(子表)关联,如果能关联到的显示,如果左有右表没有,则右表显示NULL,如果右表有左表没有 则左表显示NULL
举个例子,你现在有两张表,学生表和成绩表
学生表中有两列数据:学生ID和学生姓名,成绩表中有三列数据,成绩ID、学生ID和总分数
假设学生表中有三行数据,ID为1,2,3,姓名分别为张三,李四,赵五
假设成绩表中也有三行数据:成绩ID为1,2,3,学生ID为 2,3,5,成绩为60,85,90
如果你写 select * from 学生表 a join 成绩表 b on a.学生ID=b.学生ID
会出现学生ID为2,3的两条数据
如果你写 select * from 学生表 a left join 成绩表 b on a.学生ID=b.学生ID
会出现学生ID为1,2,3的三条数据,但学生ID为1的那条数据关联到的成绩表信息全为NULL
如果你写 select * from 学生表 a right join 成绩表 b on a.学生ID=b.学生ID
会出现学生ID为2,3,5的三条数据,但学生ID为5的那条数据关联到的学生表信息全为NULL
如果你写 select * from 学生表 a full join 成绩表 b on a.学生ID=b.学生ID
会出现学生ID为1,2,3,5的全部数据,但学生ID为5的那条数据关联到的学生表信息全为NULL,学生ID为1的那条数据关联到的成绩表信息全为NULL
左联就是左表作为主表,左连接where只影向右表,右联与之相反。
select * from tbl1 Left Join tbl2 where tbl1.ID = tbl2.ID
左连接后的检索结果是显示tbl1的所有数据和tbl2中满足where 条件的数据。
简言之 Left Join影响到的是右边的表
1 .WHERE子句中使用的连接语句,在数据库语言中,被称为隐性连接。INNER JOIN……ON子句产生的连接称为显性连接。(其他JOIN参数也是显性连接)WHERE 和INNER JOIN产生的连接关系,没有本质区别,结果也一样。但是!比较新的数据库语言基本上已经抛弃了隐性连接,全部采用显性连接了。
一般要使得数据库查询语句性能好点遵循一下原则:
在做表与表的连接查询时,大表在前,小表在
不使用表别名,通过字段前缀区分不同表中的字段
查询条件中的限制条件要写在表连接条件前
尽量使用索引的字段做为查询条件
SQL中,表之间的左联和右联是什么意思相关推荐
- mysql的内联与左联,SQL联合查询(内联、左联、右联、全联)的语法
SQL联合查询(内联.左联.右联.全联)的语法以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 概述 联合查询效率较高 举 ...
- SQL联合查询(内联、左联、右联、全联)的语法
概述:# 联合查询效率较高,举例子来说明联合查询:内联inner join .左联left outer join .右联right outer join .全联full outer join 的好处及 ...
- sql联合查询(内联、左联、右联、全联)
继上篇<sql内联查询> 引言 上篇谈到了sql内联查询是联合查询的一种,接下里这篇博客就介绍一下其它的查询方法,分别为左联.右联.全联. 还是用上篇博客提到的例子: select * f ...
- MySQL联合查询语法内联、左联、右联、全联
MySQL联合查询效率较高,以下例子来说明联合查询(内联.左联.右联.全联)的好处: T1表结构(用户id,用户名,密码) userid username password 1 jac ...
- mysql左联右联区别_Mysql----关于内联,左联,右联,全联的使用和理解
准备工作:新建两张表 表一:student 填充内容:编号,姓名,班级 表二:school 填充内容:编号,班级,专业 这两张表建好了,意为班级选课表,两张表没有任何主外键的关系,下面进行内联,左联, ...
- oracle左联表示,oracle 笔记 IX 之内联、左联、右联
介绍一下内联.左联.右联 一.先看一些最简单的例子 例子 Table A aid adate 1 a1 2 a2 3 a3 TableB bid bdate 1 b1 2 b2 4 b4 两个表a,b ...
- mysql左联和右联_MySQL联合查询语法内联、左联、右联、全联
MySQL联合查询效率较高,以下例子来说明联合查询(内联.左联.右联.全联)的好处: T1表结构(用户名,密码) userid(int) usernamevarchar(20) passwor ...
- mysql 左联 右联一块_MySQL联合查询语法(内联、左联、右联、全联)
MySQL联合查询效率较高,以下例子来说明联合查询(内联.左联.右联.全联)的好处: T1表结构(用户名,密码) userid(int) usernamevarchar(20) passw ...
- MySQL的左联,右联,内联,等值连接的区别
数据准备:单纯为了对比左联,右联,内联的区别所做的数据,不考虑业务逻辑 CREATE TABLE student( sid INT PRIMARY KEY, sname VARCHAR(10) NOT ...
最新文章
- 点击量终于突破十万大关,以示庆贺,耶!!!
- CentOS7下安装ELK三件套
- BZOJ 2662: [BeiJing wc2012]冻结(最短路)
- Ruby离线安装gem依赖
- Comcast以纯文本泄露客户Wi-Fi登录信息,立即更改密码
- 就像教育一样,本身作用巨大,当过度强化,就是扭曲了~
- HDU 2234 无题I
- CDRX4X5X6X7X8下载安装失败的原因教程分享(CorelDRAW)
- ftp服务器限制文件大小,ftp服务器设置文件大小
- Latex 语法 备忘录
- uni-app uni.request简单封装(请求头配置及response处理)
- 阿里服务器配置随笔记 centos 服务器 Linux 部分命令合集
- appnode怎么样_Linux面板AppNode免费开放使用,你还在用宝塔吗? - 立金哥
- 苹果系统版本依次顺序_iphone所有型号上市顺序
- 51单片机倒计时计时器(计时结束闹钟)
- html边框背景图片,css3 边框、背景、文本效果的实现代码
- Linux CentOS7 升级内核的方法
- 智能AI电话机器人系统
- 读《鸟哥的linux私房菜》有感--第一天
- 详解element-ui设置下拉选择切换必填和非必填