SQL右连接【RIGHT JOIN】详解及图解

JSON 2024-02-28 20:07:36 560

SQL RIGHT JOIN 连接两个表并根据一个条件获取行,该条件在两个表中都匹配(在下面的语法中提到的 JOIN 子句之前和之后),并且不匹配的行也可以从 JOIN 子句之后编写的表中可用(在下面的语法中提到)。

SQL Right Join 的图示:


语法:

SELECT *
FROM table1
RIGHT [ OUTER ] JOIN table2
ON table1.column_name=table2.column_name;

SQL RIGHT join 从 table2 中获取一组完整的记录,即 JOIN 子句后面最右边的表,以及 table1 中的匹配记录(取决于可用性)。当不进行匹配时,结果为左侧为 NULL。

语法图 - SQL Right Join


SQL 右联接或右外联接的示例

样品表:食品(foods)

+---------+--------------+-----------+------------+
| ITEM_ID | ITEM_NAME    | ITEM_UNIT | COMPANY_ID |
+---------+--------------+-----------+------------+
| 1       | Chex Mix     | Pcs       | 16         |
| 6       | Cheez-It     | Pcs       | 15         |
| 2       | BN Biscuit   | Pcs       | 15         |
| 3       | Mighty Munch | Pcs       | 17         |
| 4       | Pot Rice     | Pcs       | 15         |
| 5       | Jaffa Cakes  | Pcs       | 18         |
| 7       | Salt n Shake | Pcs       |            |
+---------+--------------+-----------+------------+

示例表:公司(company)

+------------+---------------+--------------+
| COMPANY_ID | COMPANY_NAME  | COMPANY_CITY |
+------------+---------------+--------------+
| 18         | Order All     | Boston       |
| 15         | Jack Hill Ltd | London       |
| 16         | Akas Foods    | Delhi        |
| 17         | Foodies.      | London       |
| 19         | sip-n-Bite.   | New York     |
+------------+---------------+--------------+

要从公司表中获取公司 ID、公司名称和公司城市列,以及从食品表中获取公司 ID、项目名称列,在与这些提到的表进行 OUTER JOIN 后,可以使用以下 SQL 语句:

SQL代码

SELECT company.company_id,company.company_name,
company.company_city,foods.company_id,foods.item_name
FROM   company
RIGHT JOIN foods
ON company.company_id = foods.company_id;

解释:

此 SQL 语句将返回 foods 表中的所有行,并且仅返回 company 表中联接字段相等的行,如果 ON 子句与 company 表中的任何记录不匹配,则联接仍将返回行,但 company 表的每一列中都返回 NULL。

输出:

COMPANY_ID COMPANY_NAME              COMPANY_CITY              COMPANY_ID ITEM_NAME
---------- ------------------------- ------------------------- ---------- --------------
18         Order All                 Boston                    18         Jaffa Cakes
15         Jack Hill Ltd             London                    15         Pot Rice
15         Jack Hill Ltd             London                    15         BN Biscuit
15         Jack Hill Ltd             London                    15         Cheez-It
16         Akas Foods                Delhi                     16         Chex Mix
17         Foodies.                  London                    17         Mighty Munch
                                                                          Salt n Shake

此处所示的上述 SQL 语句的输出是使用 Oracle Database 10g Express Edition 获取的

上述示例的图示:


版权所属:SO JSON在线解析

原文地址:https://www.sojson.com/blog/504.html

转载时必须以链接形式注明原始出处及本声明。

本文主题:

如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。

关于作者
一个低调而闷骚的男人。
相关文章
SQL连接详解图解
SQL连接详解图解
SQL左链接【LEFT JOIN详解图解
SQL左链接【LEFT JOIN详解图解
Unicode编码详解
SQL自然连接剖析
dns-prefetch对网站速度能提升有多少?详解dns-prefetch。
详解JavaScript中splice()方法,有Demo细介绍
SQL非等值连接剖析
SQL全外连接剖析
最新文章
Linux I/O重定向 1767
Ruby 循环 - while、for、until、break、redo 和 retry 711
Node.js:全局对象 517
如何使用终端检查Linux上的内存使用情况 635
JavaScript对象详细剖析 300
Python print() 函数 409
PHP if/else/elseif 语句 407
HTML5 Canvas弧线教程 387
Java赋值运算符 431
XML内部实体和外部实体 464
最热文章
最新MyEclipse8.5注册码,有效期到2020年 (已经更新) 686836
苹果电脑Mac怎么恢复出厂系统?苹果系统怎么重装系统? 675081
免费天气API,天气JSON API,不限次数获取十五天的天气预报 615785
免费天气API,全国天气 JSON API接口,可以获取五天的天气预报 611117
Jackson 时间格式化,时间注解 @JsonFormat 用法、时差问题说明 555623
我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比 510028
Elasticsearch教程(四) elasticsearch head 插件安装和使用 481399
Jackson 美化输出JSON,优雅的输出JSON数据,格式化输出JSON数据... ... 269208
Java 信任所有SSL证书,HTTPS请求抛错,忽略证书请求完美解决 244787
Elasticsearch教程(一),全程直播(小白级别) 227489
支付扫码

所有赞助/开支都讲公开明细,用于网站维护:赞助名单查看

查看我的收藏

正在加载... ...