SQL JOIN
?SQL JOIN
是一种从两个或多个数据库表中检索数据的方法.
SQL JOIN
s ?总共有五个JOIN
.他们是:
1. JOIN or INNER JOIN
2. OUTER JOIN
2.1 LEFT OUTER JOIN or LEFT JOIN
2.2 RIGHT OUTER JOIN or RIGHT JOIN
2.3 FULL OUTER JOIN or FULL JOIN
3. NATURAL JOIN
4. CROSS JOIN
5. SELF JOIN
在这种类型的JOIN
中,我们得到两个表中与条件匹配的所有记录,并且不报告两个表中不匹配的记录.
换句话说,INNER JOIN
基于一个事实:两个表中只有匹配的条目应该被列出.
请注意,没有任何其他JOIN
关键字(如INNER
、OUTER
、LEFT
等)的JOIN
是INNER JOIN
.换句话说,JOIN
是
OUTER JOIN
次检索
任何一个
有三种外部连接:
2.1 LEFT OUTER JOIN or LEFT JOIN
此联接返回左表中的所有行以及左表中的匹配行
2.2 RIGHT OUTER JOIN or RIGHT JOIN
这JOIN
将返回右表中的所有行以及右表中的匹配行
2.3 FULL OUTER JOIN or FULL JOIN
这个JOIN
结合了LEFT OUTER JOIN
和RIGHT OUTER JOIN
.当满足条件时,它从任一表返回行,当不匹配时,它返回NULL
值.
换句话说,OUTER JOIN
基于以下事实:只应列出其中一个表(右或左)或两个表(完整)中的匹配项.
Note that `OUTER JOIN` is a loosened form of `INNER JOIN`.
它基于两个条件:
JOIN
.这似乎更多地是理论性的,因此(可能)大多数DBMS
它是所涉及的两个表的笛卡尔积.CROSS JOIN
分的结果毫无意义
它不是JOIN
的一种不同形式,而是一张JOIN
(INNER
、OUTER
等)的桌子.
根据用于JOIN
子句的运算符,可以有两种类型的JOIN
.他们是
对于任何JOIN
类型(INNER
、OUTER
等),如果我们只使用相等运算符(=),那么我们说
This is same as EQUI JOIN
but it allows all other operators like >, <, >= etc.
许多人认为
EQUI JOIN
和θJOIN
都类似于INNER
,OUTER
.同样,有许多人认为
NATURAL JOIN
是某种类型的.