`

【数据库】sql中各种join的笔记

 
阅读更多
首先声明,当你看到这篇文章时,或许看不懂,因为这是我自己通过自己理解而写的笔记、

两个参照表table1和table2都存在id字段,但是table1、table2中其余字段不同. 
如果table1.id存在有1,2,3而table2.id中有1,3,4三个值
使用各种连接的语法,
select * from table1 left join table2 on table1.id=table2.id;
紫色字段可以填充 left join(左连接),right join(右连接),full join(全连接),join(内连接).

交叉连接
select * from table1 cross join table2;

根据不同的链接,产生出不同的结果。

左连接,参照为table1,
那么结果则是参照table1.id给出。也就是1,2,3而table2.id并没有对应值为3的参照,其相应用null填充。

右连接参照table2.id给出,而用法与左连接类似。此处不再赘述。

全连接。要参照table1.id和table2.id给出,会产生4个字段结果。table1存在而table2不存在的字段用null填充。反之亦然。多说一句。可以说全链接是左、右连接的并。

内连接产生两个字段,即左、右连接的交。只产生table1.id=table2.id的结果。可以认为就是select * from table1 table2 where table1.id = table2.id;

交叉连接产生的结果比较多,有9个结果,即table1.id。size()×table2.size()。(此处不规范,但是自己做的笔记能明白就可以了)。
即笛卡尔积。
分享到:
评论

相关推荐

    2009达内SQL学习笔记

    保存在oracle数据库中的所有操作细节: spool oracleday01.txt :开始记录 spool off :开始保存细节 四、SELECT语句:选择操作、投影操作。 select:从一个或多个表中检索一个或多个数据列。包含信息:想选择...

    SQL学习笔记八 索引,表连接,子查询,ROW_NUMBER

    您可能感兴趣的文章:使用SQL Server数据库嵌套子查询的方法常用SQL语句(嵌套子查询/随机等等)详细整理SQL Server高级内容之子查询和表链接概述及使用详细讲述MySQL中的子查询操作浅谈MySQL中的子查询优

    dsc-sql-interview-questions-quiz-nyc-ds-021720

    解释SQL可能实现的各种JOIN。 在此行下方输入答案: 问题5 解释聚合函数和GROUP BY语句之间的关系。 在此行下方输入答案: 问题6 关联实体在多对多JOIN中扮演什么角色(JOIN表)? 在此行下方输入答案: 概括 ...

    Database:数据库查询

    文章目录学习笔记:使用SQL语句进行数据查询@[toc]准备数据基本查询条件查询常用的条件表达式投影查询排序分页查询注意聚合查询分组多表查询连接查询如果你的MySQL不支持FULL OUT JOIN(非常重要)连接图示结果集 ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...

    一条查询sql是如何执行的-读书笔记

    优化器:sql将会进行优化,比如确认join的链接顺序,有多个单列索引时,应该使用哪个。 执行器:执行脚本,如果没有设置默认是调用innodb引擎。 缓存:如果开启缓存,是以key-value的形式存储,key是执行的sql,value...

    hibernate学习笔记

    补充:SQL join连接 40 缓存 44 一级缓存 44 快取 45 hibernate二级缓存 47 Hibernate Gossip: 二级快取(Second-level) 48 hibernate查询缓存 50 hibernate抓取策略 53 Hibernate最佳实践(Best Practices) 55

    精髓Oralcle讲课笔记

    61、select ename, sal from emp join (select max(sal) max_sal ,deptno from emp group by deptno) t on (emp.sal = t.max_sal and emp.deptno=t.deptno); --查询每个部门中工资最高的那个人 -----------------...

    JPA深度刘宝宝剖析版第一讲

    Java Persistence API:用于对象持久化的 API Java EE 5.0 平台标准的 ORM... 查询语言(JPQL):这是持久化操作中很重要的一个方面,通过面向对象而非面向数据库的查询语言查询数据,避免程序和具体的 SQL 紧密耦合。

    2021最新java面试合集pdf.rar

    ORACLE数据库SQL语句编写优化总结.pdf Redis面试题(含答案).docx Redis面试题(含答案).pdf solr索引搜索.docx Spring Boot实战 .pdf Spring Boot面试专题.docx Spring Cloud面试专题.docx SpringBoot面试专题及...

    Java学习笔记-个人整理的

    {2.8}框架中移动的小球}{59}{section.2.8} {2.9}抽象与接口}{59}{section.2.9} {2.10}访问控制}{60}{section.2.10} {2.10.1}类的属性}{60}{subsection.2.10.1} {2.10.2}类的方法}{61}{subsection.2.10.2} {...

    rdb-select:用于节点 mysql 的关系数据库查询构建器

    用于 javascript 的关系数据库查询生成器。 查看两个实现: 浏览器实现 (WebSQL) 节点 MySQL 实现 #示例用法# var select = new RDBSelect ( 'table1' ) ; var query = select . fields ( [ '`id` AS `id`...

    springmybatis

    3. 在User.xml 文件里面 主要是定义各种SQL 语句,以及这些语句的参数,以及要返回的类型等. 开始测试 在test_src 源码目录下建立com.yihaomen.test这个package,并建立测试类Test: 程序代码 程序代码 package ...

Global site tag (gtag.js) - Google Analytics