<分区>
INNER JOIN
、LEFT JOIN
、RIGHT JOIN
和 FULL JOIN
有什么区别
在 MySQL 中?
<分区>
INNER JOIN
、LEFT JOIN
、RIGHT JOIN
和 FULL JOIN
有什么区别
在 MySQL 中?
最佳答案
An SQL JOIN clause is used to combine rows from two or more tables, based on a common field between them.
SQL 中有不同类型的可用连接:
INNER JOIN:当两个表都匹配时返回行。
LEFT JOIN:返回左表中的所有行,即使右表中没有匹配项也是如此。
RIGHT JOIN:返回右表中的所有行,即使左表中没有匹配项也是如此。
FULL JOIN:合并左右外连接的结果。
连接表将包含两个表中的所有记录,并为两边缺失的匹配项填充 NULL。
SELF JOIN:将一个表连接到自身,就好像该表是两个表一样,临时重命名 SQL 语句中的至少一个表。
CARTESIAN JOIN:返回两个或多个联接表中记录集的笛卡尔积。
我们可以在详细信息中获取前四个连接:
我们有两个具有以下值的表。
表A
id firstName lastName
.......................................
1 arun prasanth
2 ann antony
3 sruthy abc
6 new abc
表B
id2 age Place
................
1 24 kerala
2 24 usa
3 25 ekm
5 24 chennai
................................................ .....................
内连接
注意 :给出两个表的交集,即 TableA 和 TableB 共有的行。
语法
SELECT table1.column1, table2.column2...
FROM table1
INNER JOIN table2
ON table1.common_field = table2.common_field;
在我们的示例表中应用它:
SELECT TableA.firstName,TableA.lastName,TableB.age,TableB.Place
FROM TableA
INNER JOIN TableB
ON TableA.id = TableB.id2;
结果
firstName lastName age Place
..............................................
arun prasanth 24 kerala
ann antony 24 usa
sruthy abc 25 ekm
左连接
注意:给出 TableA 中的所有选定行,以及 TableB 中的任何常见选定行。
语法
SELECT table1.column1, table2.column2...
FROM table1
LEFT JOIN table2
ON table1.common_field = table2.common_field;
在我们的示例表中应用它:
SELECT TableA.firstName,TableA.lastName,TableB.age,TableB.Place
FROM TableA
LEFT JOIN TableB
ON TableA.id = TableB.id2;
结果
firstName lastName age Place
...............................................................................
arun prasanth 24 kerala
ann antony 24 usa
sruthy abc 25 ekm
new abc NULL NULL
右连接
注意:给出 TableB 中的所有选定行,以及 TableA 中的任何常见选定行。
语法
SELECT table1.column1, table2.column2...
FROM table1
RIGHT JOIN table2
ON table1.common_field = table2.common_field;
在我们的示例表中应用它:
SELECT TableA.firstName,TableA.lastName,TableB.age,TableB.Place
FROM TableA
RIGHT JOIN TableB
ON TableA.id = TableB.id2;
结果
firstName lastName age Place
...............................................................................
arun prasanth 24 kerala
ann antony 24 usa
sruthy abc 25 ekm
NULL NULL 24 chennai
完全连接
注意:返回两个表中所有选定的值。
语法
SELECT table1.column1, table2.column2...
FROM table1
FULL JOIN table2
ON table1.common_field = table2.common_field;
在我们的示例表中应用它:
SELECT TableA.firstName,TableA.lastName,TableB.age,TableB.Place
FROM TableA
FULL JOIN TableB
ON TableA.id = TableB.id2;
结果
firstName lastName age Place
...............................................................................
arun prasanth 24 kerala
ann antony 24 usa
sruthy abc 25 ekm
new abc NULL NULL
NULL NULL 24 chennai
有趣的事实
最好去检查这个 Link 它将为您提供有关加入订单的有趣详细信息。
关于mysql - INNER JOIN、LEFT JOIN、RIGHT JOIN 和 FULL JOIN 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58804663/