mysql的三种连接方式
2024-10-08 01:09:58
SQL的三种连接方式分为:左外连接、右外连接、内连接,专业术语分别为:LEFT JOIN、RIGHT JOING、INNER JOIN
内连接INNER JOIN:使用比较运算符来根据指定的连接的每个表都有的列的值来进行匹配连接,如果对应的列值不存在,则连接的所有表对应的该列值都不会进行连接,也就是说都会别抛弃;
##### 举个例子
-------------------------------------------------
a表 id name b表 id job parent_id
1 张3 1 23 1
2 李四 2 34 2
3 王武 3 34 4
a.id同parent_id 存在关系
//进行INNER JOIN
SELECT * FROM (a INNER JOIN b ON a.id=b.parent_id);
最终输出的结果为:
a.id a.name b.id b.job b.parent_id
1 张三 1 23 1
2 李四 2 34 2
//因为a.id=3在b中不存在对应的值,b.parent_id=4再a中也不存在,因此都被抛弃
左外连接LEFT JOIN/LEFT OUTTER JOIN:如果左表的某行在右表中没有找到对应的匹配项,那么左表该行在连接表中对应的右表数据都为null;而右表中的某行在坐标中没有找到对应的匹配项,就被抛弃
举个例子
-------------------------------------------------
a表 id name b表 id job parent_id
1 张3 1 23 1
2 李四 2 34 2
3 王武 3 34 4
a.id同parent_id 存在关系
--------------------------------------------------
//进行LEFT JOIN
SELECT * FROM (a LEFT JOIN b ON a.id=b.parent_id);
最终输出的结果为:
a.id a.name b.id b.job b.parent_id
1 张三 1 23 1
2 李四 2 34 2
3 王五 null null null
//因为a.id=3在b中不存在对应的值,所以对于左外连接来说该行对应的右表中的数据的值都为null
##### 右外连接RIGHT JOIN/RIGHT OUTTER JOIN: 与左外连接类似,只不过是右表对应的数据在左表中没有找到匹配项,该行对应的左表数据就被设置为null,左表对应的数据在右表中没有找到匹配项,就被抛弃,例子就不列举了
##### 文章摘自:http://www.blogjava.net/zolly/archive/2007/10/23/SQLJION.html
</div>
最新文章
- 将richTextBox中的内容写入txt文件发现不换行(解决方法),在richTextBox指定位置插入文字
- WebApi2跨域问题
- Java(Helloworld.java)
- 源码阅读笔记 - 2 std::vector (1)
- 用iptables 实现本地端口转发
- Android获取时间
- GOF设计模式特烦恼
- linux 相关快捷键
- Google Chrome浏览器中如何使用命令
- MySQL mac 安装
- 第二篇,MVC框架
- Java Concurrency - 浅析 CountDownLatch 的用法
- 如何清除jboss缓存
- 3401: [Usaco2009 Mar]Look Up 仰望
- 吓尿了,mac下bash出了问题
- 【阿里面试系列】Java线程的应用及挑战
- ACM-ICPC 2018 南京赛区网络预赛 B The writing on the wall(思维)
- centos7如何添加开机启动服务/脚本
- Linux硬盘管理
- windows10 vs2017 C++连接MySQL