📅  最后修改于: 2023-12-03 14:47:38.815000             🧑  作者: Mango
在关系型数据库中,我们可以通过联接操作将两个或多个表中的信息连接在一起,这样我们就能够在查询结果中获得更为完整的信息。
常见的联接类型包括内连接、左连接、右连接和外连接。
内连接(INNER JOIN
)是最常见的联接类型之一,它只返回两个表中匹配的行,即只返回两个表中都有数据的行。
语法如下:
SELECT <column_name>
FROM <table_name1>
INNER JOIN <table_name2>
ON <table_name1>.<column_name> = <table_name2>.<column_name>
示例:
SELECT orders.order_id, customers.customer_name, orders.order_date
FROM orders
INNER JOIN customers
ON orders.customer_id = customers.customer_id;
左连接(LEFT JOIN
)返回左表中所有的行,以及右表中与左表匹配的行,如果右表中没有与左表匹配的行,则返回null。
语法如下:
SELECT <column_name>
FROM <table_name1>
LEFT JOIN <table_name2>
ON <table_name1>.<column_name> = <table_name2>.<column_name>
示例:
SELECT customers.customer_name, orders.order_date
FROM customers
LEFT JOIN orders
ON customers.customer_id = orders.customer_id;
右连接(RIGHT JOIN
)返回右表中所有的行,以及左表中与右表匹配的行,如果左表中没有与右表匹配的行,则返回null。
语法如下:
SELECT <column_name>
FROM <table_name1>
RIGHT JOIN <table_name2>
ON <table_name1>.<column_name> = <table_name2>.<column_name>
示例:
SELECT customers.customer_name, orders.order_date
FROM customers
RIGHT JOIN orders
ON customers.customer_id = orders.customer_id;
外连接(FULL OUTER JOIN
)返回左右表中所有的行,如果某一个表中没有相匹配的行,则返回null。
语法如下:
SELECT <column_name>
FROM <table_name1>
FULL OUTER JOIN <table_name2>
ON <table_name1>.<column_name> = <table_name2>.<column_name>
示例:
SELECT customers.customer_name, orders.order_date
FROM customers
FULL OUTER JOIN orders
ON customers.customer_id = orders.customer_id;
以上便是SQL中联接的介绍。