JOIN: 如果表中有至少一个匹配,则返回行
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN: 只要其中一个表中存在匹配,就返回行
*SQL INNER JOIN 关键字
在表中存在至少一个匹配时,INNER JOIN 关键字返回行。
INNER JOIN 关键字语法
SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name
注释:INNER JOIN 与 JOIN 是相同的。
原始的表 (用在例子中的):
"Persons" 表:
Id_P
LastName
FirstName
Address
City
1
Adams
John
Oxford Street
London
2
Bush
George
Fifth Avenue
New York
3
Carter
Thomas
Changan Street
Beijing
"Orders" 表:
Id_O
OrderNo
Id_P
1
77895
3
2
44678
3
3
22456
1
4
24562
1
5
34764
65
内连接(INNER JOIN)实例
现在,我们希望列出所有人的定购。
您可以使用下面的 SELECT 语句:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
结果集:
LastName
FirstName
OrderNo
Adams
John
22456
Adams
John
24562
Carter
Thomas
77895
Carter
Thomas
44678
INNER JOIN 关键字在表中存在至少一个匹配时返回行。如果 "Persons" 中的行在 "Orders" 中没有匹配,就不会列出这些行。
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。
原始的表 (用在例子中的):
"Persons" 表:
Id_P
LastName
FirstName
Address
City
1
Adams
John
Oxford Street
London
2
Bush
George
Fifth Avenue
New York
3
Carter
Thomas
Changan Street
Beijing
"Orders" 表:
Id_O
OrderNo
Id_P
1
77895
3
2
44678
3
3
22456
1
4
24562
1
5
34764
65
左连接(LEFT JOIN)实例
现在,我们希望列出所有的人,以及他们的定购 - 如果有的话。
您可以使用下面的 SELECT 语句:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
结果集:
LastName
FirstName
OrderNo
Adams
John
22456
Adams
John
24562
Carter
Thomas
77895
Carter
Thomas
44678
Bush
George
LEFT JOIN 关键字会从左表 (Persons) 那里返回所有的行,即使在右表 (Orders) 中没有匹配的行。
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。
原始的表 (用在例子中的):
"Persons" 表:
Id_P
LastName
FirstName
Address
City
1
Adams
John
Oxford Street
London
2
Bush
George
Fifth Avenue
New York
3
Carter
Thomas
Changan Street
Beijing
"Orders" 表:
Id_O
OrderNo
Id_P
1
77895
3
2
44678
3
3
22456
1
4
24562
1
5
34764
65
右连接(RIGHT JOIN)实例
现在,我们希望列出所有的定单,以及定购它们的人 - 如果有的话。
您可以使用下面的 SELECT 语句:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
RIGHT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
结果集:
LastName
FirstName
OrderNo
Adams
John
22456
Adams
John
24562
Carter
Thomas
77895
Carter
Thomas
44678
34764
RIGHT JOIN 关键字会从右表 (Orders) 那里返回所有的行,即使在左表 (Persons) 中没有匹配的行。
SQL FULL JOIN 关键字
只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。
FULL JOIN 关键字语法
SELECT column_name(s)
FROM table_name1
FULL JOIN table_name2
ON table_name1.column_name=table_name2.column_name
注释:在某些数据库中, FULL JOIN 称为 FULL OUTER JOIN。
原始的表 (用在例子中的):
"Persons" 表:
Id_P
LastName
FirstName
Address
City
1
Adams
John
Oxford Street
London
2
Bush
George
Fifth Avenue
New York
3
Carter
Thomas
Changan Street
Beijing
"Orders" 表:
Id_O
OrderNo
Id_P
1
77895
3
2
44678
3
3
22456
1
4
24562
1
5
34764
65
全连接(FULL JOIN)实例
现在,我们希望列出所有的人,以及他们的定单,以及所有的定单,以及定购它们的人。
您可以使用下面的 SELECT 语句:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
FULL JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
结果集:
LastName
FirstName
OrderNo
Adams
John
22456
Adams
John
24562
Carter
Thomas
77895
Carter
Thomas
44678
Bush
George
34764
FULL JOIN 关键字会从左表 (Persons) 和右表 (Orders) 那里返回所有的行。如果 "Persons" 中的行在表 "Orders" 中没有匹配,或者如果 "Orders" 中的行在表 "Persons" 中没有匹配,这些行同样会列出。

数据库左右内外连接(详细,易懂)相关推荐

  1. sqlserver2012(and mysql)数据库简单内外连接-双表-三(多)表查询

    背景: 1:学习B站数据库多表查询,解决一些实际问题 参考: 1:[尚学堂]MySQL数据库多表查询_多表连接查询视频教程_哔哩哔哩_bilibili 2:https://www.cnblogs.co ...

  2. 云服务器下载安装mongo数据库并远程连接详细图文版本(全)

    目录 前言 1. 下载解压 2. 启动 2.1 命令启动 2.2 配置启动 3. 连接 3.1 本地连接 3.2 远程连接 前言 关于mongo的知识点补充可看这篇文章:MongoDB框架零基础入门 ...

  3. DataGrip连接人大金仓数据库(kingbase)详细教程【超详细】

    DataGrip连接人大金仓数据库(kingbase)详细教程[超详细] 第一步:下载DataGrip 第二步:添加人大金仓的数据库引擎 第三步:输入账号密码连接 第四步:查看数据库 关于连接其它数据 ...

  4. Java基础-->一篇讲全Java常用类(详细易懂,建议收藏)

    Java基础–>一篇讲全Java常用类(详细易懂,建议收藏) 文章目录 Java基础-->一篇讲全Java常用类(详细易懂,建议收藏) 1.字符串相关的类 String类 概述 创建Str ...

  5. plsql objects 过一段时间就会未连接oracle_记一次生产数据库故障排查--连接管理等待事件...

    概述 最近HR数据库比较慢,拿了其中一段时间的awr报告来分析,发现有一个等待事件:connection management call elapsed time,虽然占比不是很大,不过也是有点奇怪, ...

  6. 性能优化之数据库和数据源连接池配置

    什么?!数据库连接拿不到? 今天在公司对系统进行压测,由于我的sit和dev和uat环境都是用的用的是一个数据库服务器,我让用户在的sit进行压测,分别是单线程测试,并发测试,但是用户一开始测,我的三 ...

  7. azure不支持哪些语句 sql_排查 Azure SQL 数据库的常见连接问题 - Azure SQL Database | Microsoft Docs...

    您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn. 排查 Azure SQ ...

  8. 有数据库文件怎么连接到服务器,怎么连接到服务器中的数据库

    怎么连接到服务器中的数据库 内容精选 换一换 遇到该问题,参考以下步骤排查解决.如果在,执行2.如果不在,需要重新创建弹性云服务器实例,使之和云数据库RDS实例在同一个虚拟私有云下.如果有,检查安全组 ...

  9. 搭建阿里云Linux版服务器+使用docker安装EMQ、Node-RED、MySQL+本地Navicat访问数据库(增删改查)——详细流程

    搭建阿里云Linux版服务器+使用docker安装EMQ.Node-RED.MySQL+本地Navicat访问数据库 云服务器基础搭建 注册云服务器 XShell简介 部署EMQ 部署docker 物 ...

  10. javaweb 从数据库读取数据的详细操作

    文章目录 前言 一.第一步创建bean包 二.第二步创建dao包 三.创建servlet 四.创建jsp文件,用来取数据并显示 前言 从数据库读取数据的详细操作,用购物车案例作为例子 提示:以下是本篇 ...

最新文章

  1. centos图形界面和文本界面登陆切换设置
  2. 玩转u8g2 OLED库,一篇就够
  3. JAVA的WebService规范JAX-WS
  4. java phaser用法_第3章Phaser的使用-(java并发编程核心方法与框架)
  5. 【动态规划】洛谷 P1282 多米诺骨牌
  6. 安卓系统校园招聘平台APP答辩PPT免费下载
  7. 怎么配置php发送邮件环境,如何配置PHP发送电子邮件?
  8. 由一次NoHttpResponseException异常,追究到Http长连接和短连接
  9. [生活] 2015年终总结,2016开篇计划
  10. 粒子群matlab工具箱,Matlab粒子群算法工具箱使用方法及实例演示
  11. jdk-8u271这里的u是什么意思
  12. csgo服务器搭建(linux)
  13. how to get SoCs and devices information in QEMU
  14. Shell中的expr命令
  15. datacom-HCIP之题库继续解析
  16. 天天自习软件测试计划
  17. 贪婪洞窟2 素材解密
  18. Android轻松实现日期选择器、生日选择器、自定义起始时间
  19. 人工智能的嘴巴——语音合成(Text to Speech | TTS)
  20. CAS实现的单点登录系统

热门文章

  1. Q-Q图和P-P图傻傻整不明白?
  2. 一年中所有节日的排列顺序_我国一年中的传统节日。(按顺序)
  3. iOS实现APP支持SpotLight搜索
  4. centos 6 python django mysql_CentOS 6.5中部署django+uwsgi+nginx+mysql项目
  5. SwiftUI 教程之应用中实现 Core Spotlight搜索(教程含源码)
  6. 变量名和变量地址之间的关系
  7. 边境的悍匪—机器学习实战:第五章 支持向量机
  8. CentOS yum安装mcrypt详细图解教程
  9. xshell 执行脚本API介绍(附带xsh的python包)
  10. 爱你却不能长相厮守痛楚等你殊不知道终局