这三种连接一般是sql相关的数据操作才有的概念
内连接
概念
内连接是最早的一种连接操作,也被称为普通连接或自然连接。它根据指定的连接条件,从两个或多个表中返回匹配的行。只有当两个表中的指定列的值相等时,才返回相应的行。如果某个表中的记录在另一个表中没有匹配的记录,则该记录不会出现在结果集中。因此,内连接可能会导致信息的丢失。
应用案例
假设我们有两个表:Customers(客户)和 Orders(订单)。这两个表通过 customer_id 字段关联。
Customers 表
customer_id name
1 Alice
2 Bob
3 Carol
Orders 表
order_id customer_id product
1 1 Apple
2 2 Banana
3 1 Cherry
如果我们想要找出所有下过订单的客户及其订单信息,可以使用内连接:
SELECT Customers.name, Orders.product
FROM Customers
INNER JOIN Orders ON Customers.customer_id = Orders.customer_id;
左外连接
概念
左外连接在连接两个表时,会返回左表(即连接操作符左边的表)的所有记录,以及右表(即连接操作符右边的表)中符合连接条件的记录。如果右表中没有与左表匹配的记录,则结果集中对应的字段会显示为NULL。这种连接方式确保左表的所有记录都会被返回,即使它们在右表中没有匹配项
应用案例
使用相同的 Customers 和 Orders 表,如果我们想要列出所有客户,即使他们没有订单,并显示他们的订单信息(如果有的话),我们可以使用左外连接:
SELECT Customers.name, Orders.product
FROM Customers
LEFT JOIN Orders ON Customers.customer_id = Orders.customer_id;
结果:
name product
Alice Apple
Alice Cherry
Bob Banana
Carol NULL
可以看到,左表Customer的所有需要展示的name记录全展示了,右表product因为Carol的customer_id不匹配,所以为空
右外连接
右外连接与左外连接刚好相反,返回右表所有记录及左表不匹配时为空