SQL中INNER JOIN,LEFT JOIN,RIGHT JOIN 的知识讲解

   首先,介绍一下相关定义,在讲解之前要提示一下这些东西都是基于二元表计算的。

  SELECT * FROM  A INNER JOIN B ON A.ID=B.ID 也叫内连接或等值连接,它是返回A表和B表中满足条件A.ID=B.ID的所有记录。

  SELECT * FROM  A LEFT  JOIN B ON A.ID=B.ID 称作左连接,它是返回左边表A中所有的记录,并且返回条件B.ID=A.ID的B表中的记录。

  SELECT * FROM  A RIGHT JOIN B ON A.ID=N.ID 成为右连接,它是返回右边表B中的所有记录和满足条件A.ID=N.ID的A表中的记录。

   以下是详细的实例来说明:

   首先创建一个数据库tester

  

  1. CREATE DATABASE TESTER 

    创建两张表A,B

 

  1. CREATE TABLE A 
  2.    ID INT
  3.    NUM VARCHAR(10) 
  4. CREATE TABLE B 
  5.  ( 
  6.    ID INT
  7.    NAME VARCHAR(10) 
  8.  ) 
  9. INSERT INTO A(ID,NUM) 
  10. VALUES (1,'a2005011'
  11. INSERT INTO A(ID,NUM) 
  12. VALUES (2,'a2005012'
  13.  
  14. INSERT INTO A(ID,NUM) 
  15. VALUES (3,'a2005013'
  16.  
  17. INSERT INTO A(ID,NUM) 
  18. VALUES (4,'a2005014'
  19.  
  20. INSERT INTO A(ID,NUM) 
  21. VALUES (5,'a2005015'
  22. INSERT INTO B(ID,NAME
  23. VALUES(1,'2006032401'
  24. INSERT INTO B(ID,NAME
  25. VALUES(2,'2006032402'
  26. INSERT INTO B(ID,NAME
  27. VALUES(3,'2006032403'
  28.   
  29. INSERT INTO B(ID,NAME
  30. VALUES(4,'2006032404'
  31.   
  32. INSERT INTO B(ID,NAME
  33. VALUES(8,'2006032408'

查询A表的结果:

  1. SELECT  * FROM A 

查询B表的记录:

  1. SELECT * FROM B 

1.计算等值连接:

 

  1. SELECT * FROM A INNER JOIN B ON A.ID=B.ID 

计算结果:

2.计算左连接:

  1. SELECT * FROM A LEFT  JOIN B ON A.ID=B.ID 

计算结果:

3.计算右连接:

  1. SELECT * FROM A RIGHT JOIN B ON A.ID=B.ID 

计算结果:

关于数据库表的连接问题讲解完毕,有误的地方,坑请赐教。