MySQL内外连接的具体使用

1. MySQL内连接

MySQL内连接(INNER JOIN)是最常见的连接类型,它包含两个表中共有的行,也就是说,只会返回两个表中都有的记录。

1.1 INNER JOIN用法

INNER JOIN用法如下:

SELECT column_name(s)

FROM table1

INNER JOIN table2

ON table1.column_name = table2.column_name;

其中,column_name为要选择的列名,table为要连接的表名,ON为指定连接的条件。

1.2 INNER JOIN案例分析

以下是一个INNER JOIN的实际案例:

SELECT Orders.OrderID, Customers.CustomerName

FROM Orders

INNER JOIN Customers

ON Orders.CustomerID = Customers.CustomerID;

案例解释:此语句将返回两个表中都有的Orders.OrderID和Customers.CustomerName列,通过Orders.CustomerID和Customers.CustomerID进行连接。

2. MySQL外连接

MySQL外连接可以分为左外连接和右外连接,它们分别包含左表和右表中的所有行,并将它们连接在一起。如果没有匹配,将返回 NULL 值。

2.1 左外连接

左外连接(LEFT JOIN)是将左表所有行都包含在内,而右表只包含匹配的行。

2.1.1 LEFT JOIN用法

LEFT JOIN用法如下:

SELECT column_name(s)

FROM table1

LEFT JOIN table2

ON table1.column_name = table2.column_name;

其中,column_name为要选择的列名,table为要连接的表名,ON为指定连接的条件。

2.1.2 LEFT JOIN案例分析

以下是一个LEFT JOIN的实际案例:

SELECT Customers.CustomerName, Orders.OrderID

FROM Customers

LEFT JOIN Orders

ON Customers.CustomerID = Orders.CustomerID

ORDER BY Customers.CustomerName;

案例解释:此语句将返回所有Customers表中的记录以及匹配的Orders表中的记录,没有匹配的订单将返回NULL值。订单将按顾客姓名排序。

2.2 右外连接

右外连接(RIGHT JOIN)是将右表所有行都包含在内,而左表只包含匹配的行。

2.2.1 RIGHT JOIN用法

RIGHT JOIN用法如下:

SELECT column_name(s)

FROM table1

RIGHT JOIN table2

ON table1.column_name = table2.column_name;

其中,column_name为要选择的列名,table为要连接的表名,ON为指定连接的条件。

2.2.2 RIGHT JOIN案例分析

以下是一个RIGHT JOIN的实际案例:

SELECT Orders.OrderID, Employees.LastName, Employees.FirstName

FROM Orders

RIGHT JOIN Employees

ON Orders.EmployeeID = Employees.EmployeeID

ORDER BY Orders.OrderID;

案例解释:此语句将返回所有Employees表中的记录以及匹配的Orders表中的记录,没有匹配的订单将返回NULL值。订单将按订单ID排序。

数据库标签