loading

left join 和 inner join 的区别

LEFT JOIN

LEFT JOIN(左连接)操作用于从左边的表(通常是第一个表)中选择所有记录,同时与右边的表(通常是第二个表)进行匹配。如果右边的表中没有与左边表中的记录匹配的行,那么结果中将会包含 NULL 值。

file:[外连接]
SELECT * FROM table_a AS a
LEFT JOIN table_b AS b
ON a.id = b.a_id;

如果在 table_b 表中没有与 table_a 表中的记录匹配的行,那么查询结果中对应的字段值将会是 NULL。换句话说,如果 table_a 中的记录在 table_b 中没有匹配的记录,那么对应的 table_b 表中的字段将会是空(NULL)。

总结起来,LEFT JOIN 的结果是,左边表的所有记录都会显示在结果中,并且如果右边表没有与左边表匹配的记录,右边表的字段将会是 NULL。

INNER JOIN

INNER JOIN(内连接)操作会返回两个表中满足连接条件的匹配行。与 LEFT JOIN 不同,INNER JOIN 只会返回那些在两个表中都有匹配的行。

file:[内连接]
SELECT * FROM table_a AS a
INNER JOIN table_b AS b
ON a.id = b.a_id;

只有当 table_a 中的 id 值与 table_b 中的 a_id 值相等时,相关的行才会被包含在结果中。如果在 INNER JOIN 中,存在一条 table_a 记录的 id 在 table_b 的 a_id 中没有匹配项,或者 table_b 记录的 a_id 在 table_a 的 id 中没有匹配项,那么这些记录将不会出现在结果中。

总结起来,INNER JOIN 的结果是,只有在两个表中都有匹配的行才会出现在结果中,而不会包含不匹配的行。

posted @ 2023-06-19 02:34  Himmelbleu  阅读(16)  评论(0编辑  收藏  举报