什么是内连接、外连接、交叉连接、笛卡尔积

如题所述

第1个回答  2022-06-04
连接的方式主要有三种: 外连接、内链接、交叉连接

外连接(OUTER JOIN):外连接分为三种,分别是左外连接(LEFT OUTER JOIN 或 LEFT JOIN) 、右外连接(RIGHT OUTER JOIN 或 RIGHT JOIN) 、全外连接(FULL OUTER JOIN 或 FULL JOIN)

左外连接:又称为左连接,这种连接方式会显示左表不符合条件的数据行,右边不符合条件的数据行直接显示 NULL

右外连接:也被称为右连接,他与左连接相对,这种连接方式会显示右表不      符合条件的数据行,左表不符合条件的数据行直接显示 NULL

        MySQL 暂不支持全外连接

内连接(INNER JOIN):结合两个表中相同的字段,返回关联字段相符的记录。

交叉连接的原文是Cross join ,就是笛卡尔积在 SQL 中的实现,SQL中使用关键字CROSS JOIN来表示交叉连接,在交叉连接中,随便增加一个表的字段,都会对结果造成很大的影响。

或者不用 CROSS JOIN,直接用 FROM 也能表示交叉连接的效果

如果表中字段比较多,不适宜用交叉连接,交叉连接的效率比较差。

全连接:全连接也就是 full join,MySQL 中不支持全连接,但是可以使用其他连接查询来模拟全连接,可以使用 UNION 和 UNION ALL 进行模拟。例如

使用 UNION 和 UNION ALL 的注意事项

相似回答