LEFT JOIN 与 RIGHT JOIN
一、SQL LEFT JOIN 关键字
LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。
LEFT JOIN 关键字语法
SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
注释:在某些数据库中, LEFT JOIN 称为 LEFT OUTER JOIN。
SELECTa.stu_id AS stu_id,a.stu_name AS stu_name,b.stu_age AS stu_age
FROM
(SELECT '001' AS stu_id, '小明' AS stu_nameUNION ALLSELECT '002' AS stu_id, '小李' AS stu_nameUNION ALLSELECT '003' AS stu_id, '小张' AS stu_name
) a
-- 获取age
-- LEFT JOIN 运行结果与 LEFT OUTER JOIN一致
LEFT OUTER JOIN
(SELECT stu_id, stu_ageFROM(SELECT '001' AS stu_id, 15 AS stu_ageUNION ALLSELECT '002' AS stu_id, 16 AS stu_ageUNION ALLSELECT '001' AS stu_id, 17 AS stu_age)
) b
on a.stu_id = b.stu_id
运行结果:
stu_id stu_name stu_age
001 小明 15
001 小明 17
002 小李 16
003 小张 \N
二、RIGHT JOIN 与 RIGHT OUT JOIN
SQL RIGHT JOIN 关键字
RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。
RIGHT JOIN 关键字语法
SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
注释:在某些数据库中, RIGHT JOIN 称为 RIGHT OUTER JOIN。
SELECTa.stu_id AS stu_id,a.stu_name AS stu_name,b.stu_age AS stu_age
FROM
(SELECT '001' AS stu_id, '小明' AS stu_nameUNION ALLSELECT '002' AS stu_id, '小李' AS stu_nameUNION ALLSELECT '003' AS stu_id, '小张' AS stu_nameUNION ALLSELECT '001' AS stu_id, 'xiaoming' AS stu_name
) a
-- 获取age
-- RIGHT JOIN 运行结果与 RIGHT OUTER JOIN一致
RIGHT JOIN(SELECT stu_id, stu_ageFROM(SELECT '001' AS stu_id, 15 AS stu_ageUNION ALLSELECT '002' AS stu_id, 16 AS stu_ageUNION ALLSELECT '001' AS stu_id, 17 AS stu_age)
) b
on a.stu_id = b.stu_id
运行结果:
stu_id stu_name stu_age
001 小明 15
001 小明 17
002 小李 16
001 xiaoming 15
001 xiaoming 17
LEFT JOIN 与 RIGHT JOIN相关推荐
- sql语句中left join和inner join中的on与where的区别分析
原文:sql语句中left join和inner join中的on与where的区别分析 关于SQL SERVER的表联接查询INNER JOIN .LEFT JOIN和RIGHT JOIN,经常会用 ...
- SQL的连接(join)有哪些常见形式?解释一下?解释 SQL 的 left join 和 right join?
SQL的连接(join)有哪些常见形式?解释一下?解释 SQL 的 left join 和 right join? SQL的连接(join)有哪些常见形式? sql连接查询:把多张表的列组合在一起,产 ...
- sql之left join、right join、inner join的区别,连接自己时的查询结果测试
sql之left join.right join.inner join的区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包 ...
- mysql的left join和inner join的效率对比,以及如何优化
一.前言 最近在写代码的时候,遇到了需要多表连接的一个问题,初始sql类似于: select * from a left join b on a.x = b.x left join c on c.y ...
- SQL性能--left join和inner join的运行速度与效率
①大家都知道,sql尽量使用数据量小的表做主表,这样效率高,如果使用数据量大的表做主表,此时使用left join 就会比较慢,即使关联条件有索引.但如果使用inner join速度就较快.因为inn ...
- Database之SQLSever:SQL命令实现查询之多表查询、嵌套查询、分页复杂查询,删除表内重复记录数据、连接(join、left join和right join简介及其区别)等案例之详细攻略
Database之SQLSever:SQL命令实现查询之多表查询.嵌套查询.分页复杂查询,删除表内重复记录数据.连接(join.left join和right join简介及其区别)等案例之详细攻略 ...
- Access SQL中Left Join、Right Join和Inner Join的使用
1.表结构 表A 表B 2.Left Join 示例:2.1 Select * From A left join B on A. ...
- oracle join详解,inner join和left join之间的区别详解
前言 关于inner join 与 left join 之间的区别,以前以为自己搞懂了,今天从前端取参数的时候发现不是预想中的结果,才知道问题出在inner join 上了. 需求是从数据库查数据,在 ...
- Mysql 优化器内部JOIN算法hash join On-Disk Hash Join Grace Hash Join Hybrid hash join过程详解
Mysql 各种hash join算法讲解 hash join的概述 提到hash join之前自然得说Nest loop join,以两个表的关联为例,它其实是个双层循环,先遍历外层的表(n条),再 ...
- Mysql 优化器内部JOIN算法hash join Nestloopjoin及classic hash join CHJ过程详解
Mysql hash join之classic hash join CHJ过程详解 hash join的历史 优化器里的hash join算法在SQL Server.Oracle.postgress等 ...
最新文章
- android8 通知呼吸灯_Android中通知Notification使用实例(振动、灯光、声音)
- 调试一个C#研究生管理信息系统源码
- 五天带你学完《计算机网络》·第一天·物理层
- UNIX再学习 -- 错误和警告
- CF1039D-You Are Given a Tree【根号分治,贪心】
- 数据结构基础(17) --二叉查找树的设计与实现
- 业务中台建设与应用_中心牵头建设公司数据中台数据标签库和客户关系图谱库试点应用正式上线...
- 团队冲刺第一阶段第五天
- Linux 基本权限管理
- Qt 使用vs调试的方法
- JVM、JRE、JDK、java ee sdk with jdk四者的区别
- php 页面执行时长
- 宾州州立计算机科学世界排名,美国宾州州立大学排名一览表:世界综排与专业排名详细解析!...
- iOS 编译过程的原理和应用
- 如何用C语言汉字编码输出汉字,【C语言学习】C语言汉字编码。。。C语言中汉字的输入...
- Linux下PS1、PS2、PS3、PS4使用详解
- pdk7105的I2C配置
- snow night 门谷纯
- Tree Rotations HYSBZ - 2212
- 国际学术期刊会议大排名