左连接、右连接、外连接、内连接、自连接的理解
来源:互联网 发布:德川幕府时代 知乎 编辑:程序博客网 时间:2024/06/11 13:59
今天做项目遇到一个需求就是通过一个登陆字段查询该用具有的权限,然后根据权限显示对应的页面。
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 例解。(左连接,右连接,全连接,内连接,交叉连接,自连接
- 程序的TRACE功能
- 深入理解计算机系统(一、计算机系统漫游)
- ResourceBundle的路径问题
- UVA11988 Broken Keyboard (a.k.a. Beiju Text)【数组模拟链表】
- 获得系统时间的五种常用方法
- 左连接、右连接、外连接、内连接、自连接的理解
- Xcode6 模拟器路径
- 读书是为了谋心 -- 易中天
- 越南盾
- 贪心--Gone Fishing
- Substring with Concatenation of All Words leetcode
- 浅析C++临时对象的产生相关问题
- GDAL入门篇(一) GDAL下载与安装
- Foundation框架基础 NSArray