左连接、右连接、外连接、内连接、自连接的理解
来源:互联网 发布:unity3d工程师招聘 编辑:程序博客网 时间:2024/06/01 07:40
今天做项目遇到一个需求就是通过一个登陆字段查询该用具有的权限,然后根据权限显示对应的页面。
sql语句:
select * from elec_role_popedom a
left outer join elec_user_role b
on a.roleID = b.roleid
inner join elec_user c
on b.userid = c.userid
where c.isduty = '1';
在这条语句中用了左连接和内连接。以前在学校的时候自己系统的自学过oracle,但是由于上班很少用这些,有些淡忘了。所以今天遇到了这个问题,我把这几个区别弄明白了。
左外连接也叫左连接(left outer join也可以简写为left join)
显示左表的所有数据,然后根据条件与右表进行匹配,如果有匹配的就加在左表的后面,如果有多条匹配数据,则显示多条。
没有的话,该行的右表就以null值填充。
右连接(right outerjoin 也可以简写为right join)
显示右表的所有数据,然后根据条件与左表匹配,如果有匹配的就加在左表的后面,如果有多条匹配数据,则显示多条。
没有的话,该行以null值填充。(和左连接类似)
何为左表、右表呢 ?在join的左边就称为左表,右边就称为右表
全连接 FULL JOIN 或 FULL OUTER JOIN(mysql用不了,但是可以 左连接+union+右连接 实现)
完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。
如果表之间有匹配行,则整个结果集行包含基表的数据值。
交叉连接 cross join
交叉联接返回左表中的所有行,左表中的每一行与右表中的所有行组合。交叉联接也称作笛卡尔积。
内连接 inner join (简写为 join)
两个表只查询出满足条件的行数。
自连接
把一个表当两个表看,取两个别名,进行查询。
SELECT * FROM table_1 a,table_1 b WHERE a.[name]=b.[name] --连接的两表是同一个表,别称不一样
自连接一般用于有上下级关系的查询。
以上是我对这几个概念的理解,花了哥一上午时间去测试,由于把建表语句和测试语句写在上面会显得很乱所以就这能写一下自己的心得体会了。
- 左连接、右连接、外连接、内连接、自连接的理解
- 左连接、右连接、外连接、内连接、自连接的理解
- 内连接,外连接,左连接,右连接,全连接,内连接,交叉连接,自连接
- 内连接,外连接,左连接,右连接,全连接,内连接,交叉连接,自连接
- [转]SQl中的左连接,右连接,内连接,全连接,自连接的理解
- SQl中的左连接,右连接,内连接,全连接,自连接的理解。
- SQl中的左连接,右连接,内连接,全连接,自连接的理解
- 内连接、外连接[左连接、右连接、全连接]、交叉连接、自连接
- Oracle 的内连接、外连接、自连接、左连接、右连接
- 理解SQL的四种连接-左外连接、右外连接、内连接、全连接
- 左连接,右连接,内连接,自连接
- 内连接,外连接,左连接,右连接,全连接
- 左连接、右连接、内连接、外连接、union连接
- 左连接、右连接、内连接、外连接、交叉连接
- sql左连接,右连接,外连接,内连接,自连接
- sql左连接,右连接,外连接,内连接,自连接
- SQL 连接 左连接,右连接,全连接,内连接,交叉连接,自连接
- SQL 连接 JOIN 例解。(左连接,右连接,全连接,内连接,交叉连接,自连接
- Linux程序调试--Bus Error
- 压缩感知进阶——有关稀疏矩阵
- Openstack源代码分析之keystone部分(一)--WSGI接口流程分析
- 鸟哥的 Linux 私房菜第12章-正规表示法与文件格式化处理 学习笔记
- ObjectiveC - NSArray & NSMutableArray
- 左连接、右连接、外连接、内连接、自连接的理解
- 算法 1.实现几天几小时几分几秒 2.几天之后
- 负载均衡
- tomcat下部署javaweb项目,解决http下载rar文件,乱码问题
- 中国压缩传感资源(China Compressive Sensing Resources)
- 设计模式 -- 原型模式Prototype
- 网络变压器
- ----------初用函数------------
- 项目内嵌Jetty实现优化部署