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
- CREATE DATABASE TESTER
创建两张表A,B
- CREATE TABLE A
- (
- ID INT,
- NUM VARCHAR(10)
- )
- CREATE TABLE B
- (
- ID INT,
- NAME VARCHAR(10)
- )
- INSERT INTO A(ID,NUM)
- VALUES (1,'a2005011')
- INSERT INTO A(ID,NUM)
- VALUES (2,'a2005012')
- INSERT INTO A(ID,NUM)
- VALUES (3,'a2005013')
- INSERT INTO A(ID,NUM)
- VALUES (4,'a2005014')
- INSERT INTO A(ID,NUM)
- VALUES (5,'a2005015')
- INSERT INTO B(ID,NAME)
- VALUES(1,'2006032401')
- INSERT INTO B(ID,NAME)
- VALUES(2,'2006032402')
- INSERT INTO B(ID,NAME)
- VALUES(3,'2006032403')
- INSERT INTO B(ID,NAME)
- VALUES(4,'2006032404')
- INSERT INTO B(ID,NAME)
- VALUES(8,'2006032408')
查询A表的结果:
- SELECT * FROM A
查询B表的记录:
- SELECT * FROM B
1.计算等值连接:
- SELECT * FROM A INNER JOIN B ON A.ID=B.ID
计算结果:
2.计算左连接:
- SELECT * FROM A LEFT JOIN B ON A.ID=B.ID
计算结果:
3.计算右连接:
- SELECT * FROM A RIGHT JOIN B ON A.ID=B.ID
计算结果:
关于数据库表的连接问题讲解完毕,有误的地方,坑请赐教。