left join(左连接):返回包括左表的所有记录和右表中联结字段相等的记录。
right join(右连接):返回包括右表中的所有记录和左表中联结字段相等的记录。
inner join(等值连接):只返回两个表中联结字段相等的行。

left join例子:

  1. A记录如下:
  2. aID     aNum
  3. 1     a20050111
  4. 2     a20050112
  5. 3     a20050113
  6. 4     a20050114
  7. 5     a20050115
  8. B记录如下:
  9. bID     bName
  10. 1     2006032401
  11. 2     2006032402
  12. 3     2006032403
  13. 4     2006032404
  14. 8     2006032408
  15. --------------------------------------------
  16. sql语句如下:
  17. select * from A
  18. left join B
  19. on A.aID = B.bID
  20. 结果如下:
  21. aID     aNum     bID     bName
  22. 1     a20050111    1     2006032401
  23. 2     a20050112    2     2006032402
  24. 3     a20050113    3     2006032403
  25. 4     a20050114    4     2006032404
  26. 5     a20050115    NULL     NULL

以表A的记录为基础,A可以看成左表,B可以看成右表。
左表A的记录会全部表示出来,而右表B只会显示符合搜索条件的记录,B表不足的地方均为NULL。

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

和left join结果刚好相反,这次是以右表B为基础,A表不足的地方用NULL填充。

inner join例子

sql语句如下:
select * from A
innerjoin 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

inner join并不以谁为基础,它只显示符合条件的记录。