MySql教程
MySql用户管理
MySQL数据库
MySql表格和视图
MySQL查询
MySQL索引
MySQL子句
MySQL授权
MySql控制流
MySQL条件
MySQL连接
MySQL键
MySQL触发器
MySQL聚合函数
MySQL常用
MySQL正则表达式
MySql差异性

MySQL RIGHT JOIN

右连接用于连接两个或多个表并返回右表中的所有行,并且仅返回满足其他表的结果连接条件。如果从左侧表中找到不匹配的记录,则返回Null值。它类似于"左联接",但它给出联接表的相反结果。也称为"右外部连接"。因此,Outer是用于Right Join的可选子句。
我们可以通过以下可视化表示来理解它,其中Right Outer Join返回左侧表中的所有记录,而仅返回其他表中的匹配记录。表:
MySQL Right Join

RIGHT JOIN语法

以下是连接表 Table1 Table2 的Right Join的语法:
SELECT column_list
FROM Table1
RIGHT [OUTER] JOIN Table2 
ON join_condition;
注意: 在"右连接"中,如果表包含相同的列名,则ON和USING子句将给出等效的结果。
让我们看看Right Join的工作原理。
此Join开始从右侧表中选择列,并匹配左侧表中该表的每个记录。如果两个记录均满足给定的连接条件,则它将所有行合并到一个新的行集中,并将其作为输出返回。如果右侧表的行找不到左侧表中的任何匹配行,则它将右侧表中的那些行与Null值合并。这意味着,右键连接返回右侧表中的所有数据(无论它是否匹配左侧表中的行)。

MySQL RIGHT JOIN示例

让我们举一些例子来理解Right Join子句的工作:

RIGHT JOIN子句用于连接两个表

在这里,我们将创建两个表 "customers" "orders",其中包含以下数据:
表: customers
MySQL Right Join
表: orders
MySQL Right Join
要使用RIGHT JOIN从两个表中选择记录,请执行以下查询:
SELECT customers.customer_id, cust_name, price, date
FROM customers
RIGHT JOIN orders ON customers.customer_id = orders.customer_id
ORDER BY  customer_id;
OR,
SELECT customers.customer_id, cust_name, price, date
FROM customers
RIGHT JOIN orders USING(customer_id)
ORDER BY  customer_id;
成功执行以上查询后,将提供等效的输出:
MySQL Right Join

带有WHERE子句的右联接

MySQL 使用 WHERE子句,以提供表中的 过滤器结果。下面的示例通过Right Join子句对此进行了说明:
SELECT * FROM customers
RIGHT JOIN orders USING(customer_id)
WHERE price>2500 AND price<5000;
此语句给出以下结果:
MySQL Right Join

MySQL正确加入多个表

我们已经创建了两个表,分别为 "customers" "orders"。让我们再创建一个表并将其命名为" 联系人",其中包含以下数据:
MySQL Right Join
执行以下语句以加入三个表的客户,订单和联系人:
SELECT customers.customer_id, cust_name, order_id, price, cellphone
FROM customers
RIGHT JOIN contacts ON customer_id = contact_id
RIGHT JOIN orders ON customers.customer_id = orders.customer_id ORDER BY order_id;
成功执行上述查询后,将提供以下输出:
MySQL Right Join

使用RIGHT JOIN子句获取不匹配的记录

在这种情况下,当我们想要获取不包含任何内容的表中的记录时,Right Join子句也很有用匹配另一个表中的数据行。
下面的示例可以使用RIGHT JOIN子句来查找没有 手机号码的客户:
SELECT customer_id, cust_name, cellphone, homephone
FROM customers
RIGHT JOIN contacts ON customer_id = contact_id
WHERE cellphone IS null
ORDER BY cellphone;
上面的语句返回以下输出:
MySQL Right Join
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4