MySQL 的 `JOIN` 操作有哪些类型?

推荐答案

MySQL 的 JOIN 操作主要有以下几种类型:

  1. INNER JOIN:返回两个表中满足连接条件的记录。
  2. LEFT JOIN(或 LEFT OUTER JOIN):返回左表中的所有记录,即使右表中没有匹配的记录。
  3. RIGHT JOIN(或 RIGHT OUTER JOIN):返回右表中的所有记录,即使左表中没有匹配的记录。
  4. FULL JOIN(或 FULL OUTER JOIN):返回左右表中的所有记录,即使没有匹配的记录。
  5. CROSS JOIN:返回两个表的笛卡尔积,即所有可能的组合。
  6. SELF JOIN:表与自身进行连接,通常用于处理层次结构或递归关系。

本题详细解读

INNER JOIN

INNER JOIN 是最常用的连接类型,它只返回两个表中满足连接条件的记录。如果左表中的某条记录在右表中没有匹配的记录,那么这条记录不会出现在结果集中。

LEFT JOIN

LEFT JOIN 返回左表中的所有记录,即使右表中没有匹配的记录。如果右表中没有匹配的记录,结果集中右表的列将包含 NULL

RIGHT JOIN

RIGHT JOINLEFT JOIN 类似,但它返回右表中的所有记录,即使左表中没有匹配的记录。如果左表中没有匹配的记录,结果集中左表的列将包含 NULL

FULL JOIN

FULL JOIN 返回左右表中的所有记录,即使没有匹配的记录。如果某一边没有匹配的记录,结果集中对应的列将包含 NULL。需要注意的是,MySQL 本身不支持 FULL JOIN,但可以通过 UNION 操作来模拟。

-- -------------------- ---- -------
------ -------
---- ------
---- ---- ------
-- ------------- - -------------
-----
------ -------
---- ------
----- ---- ------
-- ------------- - --------------
展开代码

CROSS JOIN

CROSS JOIN 返回两个表的笛卡尔积,即左表中的每一行与右表中的每一行进行组合。结果集的行数等于左表的行数乘以右表的行数。

SELF JOIN

SELF JOIN 是表与自身进行连接的操作,通常用于处理层次结构或递归关系。例如,可以用来查找员工的上级。

纠错
反馈

纠错反馈