SQL语句关联查询
一:连接类型:








关联查询:只有存在关联的表才能关联查询,完全独立的表之间无法关联
1.关联的类型:自关联,左关联,右关联,全关联(full join)两张表都是主表
2.关联的表:两张以上,以一张(或已关联存在的表)为主表
3.关联条件:主表中的某列与副表中的某列(一一对应)>所有已关联的表可以看成一张主表,表中的列,都可以作为条件与将要被关联的副表关联
4.筛选条件:所有关联的表中的列,都可以作为数据筛选条件
5.查询范围:所有关联的表中的列,都可以被查询
原理:
1.当使用关联语句将两张表进行关联时,系统会通过关联条件,自动生成一张新的符合条件表,不管再进行关联,查询等任何其它操作
都是针对于这张新生成的表进行的。
2.一旦进行关联后,和原有的两张表就没有关系,它是一张新的表
3.生成新表的机制,主表的关联条件跟副表的关联条件进行匹配,满足条件的数据自动整合成一i条新的数据放入新表,这时如果副表的关联条件有重复,那么新生成表的数据就会重复,只有在匹配不到副表的情况下,副表数据才会为空,如果已匹配到就不会再去匹配空值
注意:
1.关联查询时,关联条件一定要主外键关联,不然会出现多余重复数据(不仅仅如此会造成重复数据,唯一衡量的标准即是:主,副表重复匹配)
2.2016-07-13
主外键关联时,如果主表的关联列是外键,会出现多余数据,副表数据查出来是空
作用:2016-06-24
1.数据有紧密关联的必须用关联查询,如果用多条SQL语句拆开查询,一旦哪一环节改变,他无法把改变传递给下一环节,它们相互之间独立。
如果是关联查询任何一点的改变都会影响整条流程,所以,需要用关联查询的数据,必须用关联查询出来,而不是多条SQL语句拆分查出来
技巧:
1.在做关联查询时想要关联的副表很关键,有的时候不去关联已经存在的表,而是去关联查询出来的一张虚拟的表,这一点很重要,很多业务场景已有的表数据是不满足
注意:2017-12-28:关联查询,首先看主表,where中不加任何筛选条件,主表中所有数据都会查出来,然后再看关联表,再看关联关系,关联筛选条件,表和表直接的关联,
会先根据关联筛选条件 去查询关联表,得出虚拟表 再跟主表进行关联匹配,有就关联,多则重复加,没有则为空
SQL语句关联查询的更多相关文章
- MySQL的EXPLAIN命令用于SQL语句的查询执行计划
MySQL的EXPLAIN命令用于SQL语句的查询执行计划(QEP).这条命令的输出结果能够让我们了解MySQL 优化器是如何执行SQL 语句的.这条命令并没有提供任何调整建议,但它能够提供重要的信息 ...
- mysql 常用 sql 语句 - 快速查询
Mysql 常用 sql 语句 - 快速查询 1.mysql 基础 1.1 mysql 交互 1.1.1 mysql 连接 mysql.exe -hPup ...
- SQL语句之查询(SELECT)
目录 SQL语句之查询(SELECT) 简单查询 限定查询 模糊查询 排序查询 多表查询 SQL语句之查询(SELECT) SQL是用于访问和处理数据库的标准计算机语言: 中文:结构化查询语言:英文全 ...
- SQL语句在查询分析器中可以执行,代码中不能执行
问题:SQL语句在查询分析器中可以执行,代码中不能执行 解答:sql中包含数据库的关键字,将关键字用[]括起来,可以解决. 后记:建数据库的时候尽量避免使用关键字. 例子: sql.Format(&q ...
- 如何在 Linux 上用 SQL 语句来查询 Apache 日志
Linux 有一个显著的特点,在正常情况下,你可以通过日志分析系统日志来了解你的系统中发生了什么,或正在发生什么.的确,系统日志是系统管理员在解决系统和应用问题时最需要的第一手资源.我们将在这篇文章中 ...
- 在Hibernate中使用HibernateTemplate来进行包含sql语句的查询
/** * 使用sql语句进行查询操作 * @param sql * @return */ public List queryWithSql(final Stri ...
- Sql语句之查询所有学生所有科目分数及总分
昨天练Sql语句,数据库建了四个表分别是,学生表,课程表,成绩表以及教师表(教师表不在讨论范围),突然想到以前高中时代老师手上的那张成绩表,然后我就寻思着能不能用Sql语句把表打印出来,以下是我的思考 ...
- Python与开源GIS:在OGR中使用SQL语句进行查询
摘要: 属性选择与空间选择都可以看作是OGR内置的选择功能,这两种功能可以解决大部分实际中的问题.但是也有这种时候,就是进行查询时的条件比较复杂.针对这种情况,OGR也提供了更加灵活的解决方案:支持使 ...
- SQL 语句在查询分析器执行很快,程序 Dapper 参数化查询就很慢(parameter-sniffing)
这个问题困扰我好长时间了,使用SQLSERVER 事务探查器找到执行超时的SQL语句,参数查询都是通过执行exe sp_executesql 的存储过程调用,因为它能够分析并缓存查询计划,从而优化查询 ...
随机推荐
- 【转】关于easyui的窗口和tab页面不执行js说明
原地址:http://www.jeasyuicn.com/post-49.html 一直以来群里里面很多人反应,在用tab加载界面的时候,界面里面的js不会执行.今天GodSon在此说明一下原因. 不 ...
- Codeforces Beta Round #16 (Div. 2 Only)
Codeforces Beta Round #16 (Div. 2 Only) http://codeforces.com/contest/16 A 水题 #include<bits/stdc+ ...
- 如何禁止chrome自动跳转https
请在chrome的地址栏输入: chrome://net-internals/#hsts 在打开的页面中, Delete domain 栏的输入框中输入:xx.xx.com(注意这里是二级域名),然后 ...
- Win7系统不能记忆窗口大小与位置解决方法
似在某此系统优化后,无意发现系统在注销或重启后,打开资源管理器,它以默认大小及位置显示. 对于习惯自定义操作来说,甚为不便,遍找方法未有奏效者,但总萦绕心头,时时记起. 今日再找问题解决方法,难兄难弟 ...
- Redis 与Spring-data-redis 整合后封装的工具类
此工具类方法是使用了redis 与spring 整合后,才可以使用的工具类,将 spring-data-redis 一些我们开发中常用的方法进行了封装,方便我们日常开发中进行调用: package c ...
- linux命令学习之:mv
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 命令格式 mv [选项] 源文件或目 ...
- 42-2017蓝桥杯b java
1.购物单 小明刚刚找到工作,老板人很好,只是老板夫人很爱购物.老板忙的时候经常让小明帮忙到商场代为购物.小明很厌烦,但又不好推辞. 这不,XX大促销又来了!老板夫人开出了长长的购物单,都 ...
- threejs 世界坐标转化为屏幕坐标
网站: http://www.yanhuangxueyuan.com/Three.js_course/screen.html 方法.project 通过Vector3对象的方法project,方法的参 ...
- Java运算符号,对象赋值,别名
生活发生的一切,才会促使着我继续前行,今天继续更新哦,看书中的代码练习. 例子1 引入net.mindview.util.Print.* ,方便打印结果. package com.date0529; ...
- python multiprocessing 和tcp
#用类方法 服务端 from socket import *from multiprocessing import Processimport os class Myprocess(Process): ...