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排序。