什么是内连接、外连接、交叉连接(笛卡尔积)?
1、内连接(inner join):取得两张表中满足存在连接匹配关系的记录。
完整语法:左表inner join 右表 on 匹配条件
MySQL语法:左表 join 右表 on 匹配条件
2、外连接(outer join):取得两张表中满足存在连接匹配关系的记录,以及某张表(或两张表)中不满足匹配关系的记录。具体又分为:左外链接、右外连接、全外链接。
2.1、左外连(left outer join):除显示两表满足匹配关系的记录,还显示左边表不满足匹配关系的记录;
完整语法:左表left outer join 右表 on 匹配条件
MySQL语法:左表 left outer join 右表 on 匹配条件
2.2、右外连(right outer join):除显示两表满足匹配关系的记录,还显示右边表不满足匹配关系的记录;
完整语法:左表right outer join 右表 on 匹配条件
MySQL语法:左表right outer join 右表 on 匹配条件
2.3、全外连(full outer join):除显示两表满足匹配关系的记录,还显示左右表不满足匹配关系的记录;
完整语法:左表full outer join 右表 on 匹配条件
MySQL语法:MySQL不支持全外连语法,可以用一条左外语句union一条右外语句的到同样的效果。
3、交叉连接(cross join):显示两张表所有记录一一对应,没有匹配关系进行筛选,也被称之为:笛卡尔积。
完整语法:左表cross join 右表
MySQL语法: 左表join 右表 或 左表,右表