常见的网站结构类型,wordpress与PHP的区别,WordPress5.1后台常规没有备案,wordpress优雅的暂停1. INNER JOIN#xff08;简称 JOIN#xff09;
INNER JOIN 是 SQL 中最常用的一种连接方式#xff0c;默认的 JOIN 就是 INNER JOIN。它返回两个表中满足连接条件的匹配记录。
作用#xff1a;返回两个表中所有满足 ON 条件的记录。特性#xff1a;如果表中的某些行在连…1. INNER JOIN简称 JOIN
INNER JOIN 是 SQL 中最常用的一种连接方式默认的 JOIN 就是 INNER JOIN。它返回两个表中满足连接条件的匹配记录。
作用返回两个表中所有满足 ON 条件的记录。特性如果表中的某些行在连接条件下没有匹配的行那么这些行将不会出现在结果集中。
例子
SELECT * FROM TableA JOIN TableB ON TableA.ID TableB.ID;
这将只返回 TableA 和 TableB 中 ID 字段匹配的记录。
2. OUTER JOIN
OUTER JOIN 分为三种类型LEFT OUTER JOIN、RIGHT OUTER JOIN 和 FULL OUTER JOIN它们的主要特点是即使某些行在连接条件下没有匹配的行仍然会出现在结果集里。 LEFT OUTER JOIN左外连接返回左表即 JOIN 中左边的表中的所有记录即使右表中没有匹配的行。如果右表没有匹配的行右表的列会显示 NULL。 RIGHT OUTER JOIN右外连接返回右表即 JOIN 中右边的表中的所有记录即使左表中没有匹配的行。如果左表没有匹配的行左表的列会显示 NULL。 FULL OUTER JOIN全外连接返回两个表中的所有记录。如果左表没有匹配的行左表的列会显示 NULL如果右表没有匹配的行右表的列会显示 NULL。
2.1 LEFT OUTER JOIN (左外连接)
LEFT OUTER JOIN 返回左表的所有记录以及右表中与之匹配的记录。如果右表中没有匹配的记录则结果中相应的右表列会显示为 NULL。
例子
SELECT * FROM TableA LEFT OUTER JOIN TableB ON TableA.ID TableB.ID;
这将返回 TableA 中的所有记录即使 TableB 中没有匹配的记录。如果 TableB 中没有与 TableA 中的某条记录匹配的行TableB 中的字段将显示为 NULL。
2.2 RIGHT OUTER JOIN (右外连接)
RIGHT OUTER JOIN 返回右表的所有记录以及左表中与之匹配的记录。如果左表中没有匹配的记录则结果中相应的左表列会显示为 NULL。
例子
SELECT * FROM TableA RIGHT OUTER JOIN TableB ON TableA.ID TableB.ID;
这将返回 TableB 中的所有记录即使 TableA 中没有匹配的记录。如果 TableA 中没有与 TableB 中的某条记录匹配的行TableA 中的字段将显示为 NULL。
2.3 FULL OUTER JOIN (全外连接)
FULL OUTER JOIN 返回左表和右表的所有记录。如果某一表中没有匹配的记录则对应的字段将显示为 NULL。
例子
SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.ID TableB.ID;
这将返回 TableA 和 TableB 中的所有记录。如果某一表中的记录没有匹配另一个表的列将显示为 NULL。
3. 总结对比
连接类型返回记录说明INNER JOIN只有满足连接条件的匹配记录只有在两个表中都有匹配的记录才会被返回。LEFT JOIN返回左表的所有记录右表的匹配记录左表的所有记录都返回右表没有匹配的会显示 NULL。RIGHT JOIN返回右表的所有记录左表的匹配记录右表的所有记录都返回左表没有匹配的会显示 NULL。FULL JOIN返回左右表的所有记录左表和右表的匹配记录左右表所有记录都返回没匹配的字段会显示 NULL。
4. 使用场景
INNER JOIN当你只关心两张表中有匹配记录的情况时使用 INNER JOIN。LEFT JOIN当你需要保留左表的所有记录并且想知道左表记录是否在右表中有匹配时使用 LEFT JOIN。RIGHT JOIN当你需要保留右表的所有记录并且想知道右表记录是否在左表中有匹配时使用 RIGHT JOIN。FULL JOIN当你需要保留两张表的所有记录时使用 FULL JOIN即使它们没有匹配的记录。