left join、right join、inner join的区别

2025-10-25 17:08:08

1、(1)left join

sql语句如下:

select * from A

left join B

on A.aID = B.bID

结果如下:

aID          aNum          bID          bName

1             a20050111    1             2006032401

2      披晃       a20050112    2             2006032402

3             a20050113    3             2006032403

4  喝召           a20050114    4             2006032404

5             a20050115    NULL       NULL

(所影响的行数为 5 行)

--------------------------------------------

结果说明:

left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.

换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件舍低摸的记录(例子中为: A.aID = B.bID).

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

2、(2)right join

sql语句如下:

select * from A

right join B

on A.aID = B.bID

结果如下:

aID          aNum          bID          bName

1             a20050111    1             2006032401

2             a20050112    2             2006032402

3             a20050113    3             2006032403

4             a20050114    4             2006032404

NULL      NULL             8             2006032408

(所影响的行数为 5 行)

--------------------------------------------

结果说明:

仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.

3、(3)inner join

sql语句如下:

select * from A

inner join B

on A.aID = B.bID

结果如下:

aID          aNum          bID          bName

1             a20050111    1             2006032401

2             a20050112    2             2006032402

3             a20050113    3             2006032403

4             a20050114    4             2006032404

结果说明:

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

--------------------------------------------

注:

LEFT JOIN操作用于在任何的 FROM 子句中,组合来源表的记录。使用 LEFT JOIN 运算来创建一个左边外部联接。左边外部联接将包含了从第一个(左边)开始的两个表中的全部记录,即使在第二个(右边)表中并没有相符值的记录。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢