外连接查询与内连接的不同

外连接的语法如下:

SELECT 字段名称
FROM 表名1 LEFT|RIGHT|FULL| [OUTER] JOIN 表名2
  ON 表名1.字段名1=表面2.字段名2

左外连接

左外连接的结果集包含左表的所有记录和右表中满足连接条件的记录,结果集中那些不符合连接条件的来源于右表的列值为null。

LEFT JOIN

外连接查询与内连接的不同_第1张图片

右外连接

右外连接是左外连接的反向连接。右外连接的结果集包括右表的所有记录和左表中满足连接条件的记录,结果集中那些不符合连接条件的来源与左表的列值为null。

外连接查询与内连接的不同_第2张图片

内连接

内连接查询会将T1表的每一行和T2表的每一行进行比较,并找出满足连接谓词的组合。当连接谓词被满足,A和B中匹配的行会按列组合(并排组合)成结果集中的一行。

外连接查询与内连接的不同_第3张图片

下面用几个例子来详细说明:

T1表:

ID name
1 小二
2 张三
3 李四

T2表:

ID occupation
学生
2 老师
4 校长

内连接结果:

SELECT T1.*,T2.*
FROM TI INNER JOIN T2
  ON A.Id=B.Id
Id name Id1 occupation
1 小二 1 学生
2 张三 2 老师

左连接结果:

SELECT T1.*,T2.*
FROM TI LEFT JOIN T2
  ON A.Id=B.Id
Id name Id1 occupation
1 小二 1 学生
2 张三 2 老师
3 李四 NULL NULL

右连接结果:

SELECT T1.*,T2.*
FROM TI RIGHT JOIN T2
  ON A.Id=B.Id
Id name Id1 occupation
1 小二 1 学生
2 张三 2 老师
NULL NULL 4 校长

 

你可能感兴趣的:(mysql)