以下转自:http://www.cnblogs.com/eflylab/archive/2007/06/25/794278.html
假设有如下表:
一个为投票主表,一个为投票者信息表~记录投票人IP及对应投票类型,左右连接实际说是我们联合查询的结果以哪个表为准~
1:如右接连 right join 或 right outer join:
我们以右边voter表为准,则左表(voteMaster)中的记录只有当其ID在右边(voter)中存在时才会显示出来,如上图,左边中ID为3.4.5.6因为这些ID右表中没有相应记录,所以没有显示!
2:因此我们自然能理解左连接 left join 或者 left outer join
可见,现在右边中ID在中存在时才会显示,当右边中没有相应数据时则用NULL代替!
3:全连接 full join 或者 full outer join,为二个表中的数据都出来,这里演示效果与上一样!
4:内连接 inner join 或者 join;它为返回字段ID同时存在于表voteMaster 和 voter中的记录
5:交叉连接(完全连接)cross join 不带 where 条件的
没有 WHERE 子句的交叉联接将产生联接所涉及的表的笛卡尔积。第一个表的行数乘以第二个表的行数等于笛卡尔积结果集的大小。(table1和table2交叉连接产生6*3=18条记录)
等价select vm.id,vm.voteTitle,vt.ip from voteMaster as vm,voter as vt
6:自连接。在这里我用我前段时间一个电力项目中的例子(改造过)
如下表:
这是一个部门表,里面存放了部门及其上级部门,但都放在同一张表中,我们假设现在需要用SQL查询出各部门及其上级部门!就如何做,
当然,不用自连接也一样,可以如下:
我们达到预期目的!在这个查询中使用了一个子查询完成对上级部门名的查询,如果使用自连接,那么结构上感觉会清晰很多。
是不是也同样完成了功能呢,这里除了使用自连接外,还使用了左连接,因为省电力没有上级部门,他是老大,如果使用内连接,就会把这条记录过滤掉,因为没有和他匹配的上级部门。
自连接用的比较多的就是对权形结构的查询!类似上表!
- 大小: 28.1 KB
- 大小: 20.1 KB
- 大小: 25.6 KB
- 大小: 20.1 KB
- 大小: 43.5 KB
- 大小: 43.6 KB
- 大小: 60.9 KB
- 大小: 57 KB
分享到:
相关推荐
SQL 连接 JOIN 例解
SQL 连接 JOIN 例解左连接,右连接,全连接,内连接,交叉连接,自连接
SQL连接JOIN例解左连接右连接全连接内连接交叉连接自连接
SQL连接JOIN例解 (左连接,右连接,全连接,内连接,交叉连接,自连接)pdf
SQL连接JOIN
SQL语句inner join,left join ,right join连接的不同之处, 非常实用
SQL语句left join/right join/inner join 的用法比较 SQL语句left join/right join/inner join 的用法比较
sql连接器
SQL join 完全用法 SQL join 完全用法 学习sql join
SqlServer连接工具SqlServer连接工具SqlServer连接工具
sql语句中join的用法 sql语句中join的用法
SQLTools sql连接工具SQLTools sql连接工具SQLTools sql连接工具
文章目录SQL 连接(JOIN)不同的 SQL JOINSQL INNER JOIN 关键字SQL LEFT JOIN 关键字SQL RIGHT JOIN 关键字SQL FULL OUTER JOIN 关键字 SQL 连接(JOIN) SQL join 用于把来自两个或多个表的行结合起来。 下图展示了 ...
【SQL】在sql server中 delete时 使用INNER JOIN 京华志出品 必数精华
sqljdbc4 (SQL连接驱动包)sqljdbc4 (SQL连接驱动包) sqljdbc4 (SQL连接驱动包) sqljdbc4 (SQL连接驱动包)
sqlserver自动生成sql语句工具sqlserver转oracle
SQL中的left outer join,inner join,right outer join用法详解
解决oracle sqldeveloper无法连接mysql、SQLServer问题,sqlDeveloper是ORACLE数据库开发工具,自带的是无法连接MS SQL Server以及mysql的,想连接的话需要第三方工具。 使用方法: 解压出来后将2个jar放入jlib...
sql连接myeclipse与sql的连接
SQL Inner Join SQL Left Join SQL Right Join SQL Full Join SQL Union SQL Select Into SQL Create DB SQL Create Table SQL Constraints SQL Not Null SQL Unique SQL Primary Key SQL Foreign Key ...