MySQL(五):left join(左关联)和right join(右关联)和inner join(自关联)的区别

两张图分清内联接,左联接,右联接

MySQL(五):left join(左关联)和right join(右关联)和inner join(自关联)的区别_第1张图片
MySQL(五):left join(左关联)和right join(右关联)和inner join(自关联)的区别_第2张图片


举例:

MySQL(五):left join(左关联)和right join(右关联)和inner join(自关联)的区别_第3张图片


1.left join

sql语句如下:

select * from A left join B on A.aID = B.bID

结果如下:
aID    aArea   bID   bName
1     北京    1  小王
2     上海    2     小张
3     广州    3     小李
4     深圳    4     小陈
5     香港    NULL   NULL

(影响行数为 5 行)
例子说明:

left join是以左边的A表的记录为基础的,也就是说,左表(A)的记录会全部展示出来,而右表(B)只会展示符合搜索条件的记录。

B表记录不足的地方均为NULL.


2.right join

sql语句如下:

select * from A right join B  on A.aID = B.bID

结果如下:
aID    aArea   bID   bName
1     北京    1     小王
2     上海    2     小张
3     广州    3     小李
4     深圳    4     小陈
NULL   NULL    8     小黄

(影响行数为 5 行)
例子说明:
right join是以右边边的B表的记录为基础的,也就是说,右表(B)的记录会全部展示出来,而左表(A)只会展示符合搜索条件的记录。和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.


3.inner join

sql语句如下:

select * from A innerjoin B  on A.aID = B.bID

结果如下:
aID    aArea   bID   bName
1     北京    1     小王
2     上海    2     小张
3     广州    3     小李
4     深圳    4     小陈

(影响行数为 4行)

例子说明:
这里只展示了A.aID = B.bID的记录.说明inner join并不以谁为基础,它只显示符合条件的记录.

你可能感兴趣的:(Mysql数据库)