inner join 和 lefe join on 和right join区别

Code:
  1. 2.操作实例   
  2.   
  3. 表A记录如下:   
  4. aID                aNum   
  5. 1                   a20050111   
  6. 2                   a20050112   
  7. 3                   a20050113   
  8. 4                   a20050114   
  9. 5                   a20050115   
  10.   
  11. 表B记录如下:   
  12. bID                bName   
  13. 1                    2006032401   
  14. 2                   2006032402   
  15. 3                   2006032403   
  16. 4                   2006032404   
  17. 8                   2006032408   
  18.   
  19.   
  20. 实验如下:   
  21. 1.left join  
  22.   
  23. sql语句如下:    
  24. select * from A   
  25. left join B    
  26. on A.aID = B.bID   
  27.   
  28. 结果如下:   
  29. aID                aNum                           bID                   bName   
  30. 1                    a20050111                 1                       2006032401   
  31. 2                    a20050112                 2                      2006032402   
  32. 3                    a20050113                 3                      2006032403   
  33. 4                    a20050114                 4                      2006032404   
  34. 5                    a20050115                 NULL               NULL  
  35. (所影响的行数为 5 行)   
  36.   
  37. 结果说明:   
  38.                 left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.   
  39. 换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID).   
  40. B表记录不足的地方均为NULL.   
  41.   
  42. 2.right join  
  43. sql语句如下:    
  44. select * from A   
  45. right join B    
  46. on A.aID = B.bID   
  47. 结果如下:   
  48. aID                aNum                           bID                   bName   
  49. 1                    a20050111                 1                       2006032401   
  50. 2                    a20050112                 2                      2006032402   
  51. 3                    a20050113                 3                      2006032403   
  52. 4                    a20050114                 4                      2006032404   
  53. NULL            NULL                           8                      2006032408   
  54. (所影响的行数为 5 行)   
  55. 结果说明:   
  56.         仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.   
  57.   
  58.   
  59. 3.inner join  
  60. sql语句如下:    
  61. select * from A   
  62. innerjoin B    
  63. on A.aID = B.bID   
  64.   
  65. 结果如下:   
  66. aID                aNum                           bID                   bName   
  67. 1                    a20050111                 1                       2006032401   
  68. 2                    a20050112                 2                      2006032402   
  69. 3                    a20050113                 3                      2006032403   
  70. 4                    a20050114                 4                      2006032404   
  71.   
  72. 结果说明:   
  73.         很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录.   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值