MySQL 右连接

MySQL 右连接

Right Join用于连接两个或多个表,并返回右侧表中的所有行,以及满足连接条件的其他表的结果。如果它在左侧表中找到不匹配的记录,则返回Null值。它类似于Left Join,只是它给出了连接表的相反结果。它也被称为Right Outer Join。所以,Outer是可选的与Right Join一起使用的子句。

我们可以通过以下可视化表示来理解,其中Right Outer Join返回左侧表中的所有记录以及其他表中的匹配记录:

MySQL 右连接

RIGHT JOIN 语法

下面是 Right Join 的语法,用于连接表 Table1Table2

SELECT column_list
FROM Table1
RIGHT [OUTER] JOIN Table2 
ON join_condition;

注意:在Right Join中,如果表中包含相同的列名,那么ON和USING子句将给出等效结果。

让我们看看Right Join如何工作。

此连接从右表开始选择列,并将该表的每个记录与左表进行匹配。如果两个记录都满足给定的连接条件,它将组合所有列成一个新的行集,并作为输出返回。如果右侧表的行在左侧表中找不到匹配的行,则它将使用空值组合右侧表中的这些行。这意味着Right Join返回右侧表中的所有数据,无论它是否与左侧表中的行匹配。

MySQL RIGHT JOIN示例

让我们通过一些示例来了解Right Join子句的工作原理:

用于连接两个表的RIGHT JOIN子句

在这里,我们将创建两个表“customers”和“orders”,这些表包含以下数据:

表:customers

MySQL 右连接

表格:orders

MySQL 右连接

使用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;

或者,

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 右连接

MySQL RIGHT JOIN多个表

我们已经创建了两个表,分别命名为 ” customers” 和 ” orders” 。让我们再创建一张表,命名为 ” contacts”,并包含以下数据:

MySQL 右连接

执行以下语句来连接三个表格:customers,orders和contacts:

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子句查找没有 手机号码 的客户:

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 右连接

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程