inner join on , left join on , right join on

来源:互联网 发布:打电话变女声软件 编辑:程序博客网 时间:2024/04/30 21:30

简要介绍一下标准SQL中的三种连接查询

inner join 称为 内连接(或等值连接), 只返回两个表中连接字段相等的行

left (outer) join 称为左(外)连接,  返回包括左表中的所有记录和右表中连接字段相等的记录

right (outer)  join 称为右(外)连接, 返回包括右表中的所有记录和左表中连接字段相等的记录

 在使用连接查询时,首先,应该明确本次查询涉及到哪些表;然后,这些表分别根据哪些字段进行连接的;最后,确定需要显示的字段。


1.INNER JOIN ON 语法:

1.1 INNER JOIN ON 连接两个数据表的用法:

SELECT * FROM 表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号

1.2  INNER JOINON 连接三个数据表的用法:

SELECT * FROM (表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号

1.3 INNER JOINON 连接四个数据表的用法:

 SELECT * FROM ((表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号) INNER JOIN表4 ON Member.字段号=表4.字段号

1.4 INNER JOINON 连接五个数据表的用法:

SELECT * FROM (((表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号) INNER JOIN 表4 ON Member.字段号=表4.字段号) INNER JOIN 表5 ON Member.字段号=表5.字段号

2. LEFT (OUTER)  JOINON 语法:
  2.1 LEFT JOIN ON 连接两个表的用法:

SELECT * FROM 表1 LEFT JOIN 表2 ON 表1.字段号=表2.字段号

表示:显示表1中的所有记录和表2符合连接条件:表1.字段号 = 表2.字段号 的记录。
 2.2 LEFT JOIN ON 连接三个表的用法:

SELECT * FROM (表1 LEFT JOIN 表2 ON 表1.字段号 = 表2.字段号 ) LEFT JOIN 表3 ON 表2.字段号 = 表3.字段号
表示,先通过左连接得到:.表1的全部记录和表2中符合连接条件的记录 ;再通过左连接将上一步的所有记录和表3中符合连接条件的记录。
更多表的左连接查询实现略。


3. RIGHT (OUTER) JOIN ON 语法:

  3.1 RIGHT JOIN ON 连接两个表的用法:

SELECT * FROM 表1 RIGHT JOIN 表2 ON 表1.字段号 = 表2.字段号
表示,显示表2中的所有记录和表1符合连接条件:表1.字段号 = 表2.字段号 的记录。
 3.2 LEFT JOIN ON 连接三个表的用法:
SELECT * FROM (表1 RIGHT JOIN 表2 ON 表1.字段号 = 表2.字段号 ) RIGHT JOIN 表3 ON 表2.字段号 = 表3.字段号
表示,先通过右连接得到:.表2的全部记录和表1中符合连接条件的记录 ;再通过右连接得到表3中的所有记录和上一步连接得到的结果中的符合连接条件的记录。
更多表的右连接查询实现略。


4. 左连接和右连接的等价性

其实,左连接和右连接的功能是相通的,即左连接能实现的查询右连接也能实现,而且使用起来也比较简单,只要将表换一下前后顺序。
如:

SELECT * FROM 表1 LEFT JOIN 表2 ON 表1.字段 = 表2.字段 
等价于
SELECT * FROM 表2 RIGHT JOIN 表1 ON 表1.字段 = 表2.字段



 

0 0