一:连接类型:

关联查询:只有存在关联的表才能关联查询,完全独立的表之间无法关联  

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语句关联查询的更多相关文章

  1. MySQL的EXPLAIN命令用于SQL语句的查询执行计划

    MySQL的EXPLAIN命令用于SQL语句的查询执行计划(QEP).这条命令的输出结果能够让我们了解MySQL 优化器是如何执行SQL 语句的.这条命令并没有提供任何调整建议,但它能够提供重要的信息 ...

  2. mysql 常用 sql 语句 - 快速查询

    Mysql 常用 sql 语句 - 快速查询 1.mysql 基础 1.1 mysql 交互         1.1.1 mysql 连接             mysql.exe -hPup    ...

  3. SQL语句之查询(SELECT)

    目录 SQL语句之查询(SELECT) 简单查询 限定查询 模糊查询 排序查询 多表查询 SQL语句之查询(SELECT) SQL是用于访问和处理数据库的标准计算机语言: 中文:结构化查询语言:英文全 ...

  4. SQL语句在查询分析器中可以执行,代码中不能执行

    问题:SQL语句在查询分析器中可以执行,代码中不能执行 解答:sql中包含数据库的关键字,将关键字用[]括起来,可以解决. 后记:建数据库的时候尽量避免使用关键字. 例子: sql.Format(&q ...

  5. 如何在 Linux 上用 SQL 语句来查询 Apache 日志

    Linux 有一个显著的特点,在正常情况下,你可以通过日志分析系统日志来了解你的系统中发生了什么,或正在发生什么.的确,系统日志是系统管理员在解决系统和应用问题时最需要的第一手资源.我们将在这篇文章中 ...

  6. 在Hibernate中使用HibernateTemplate来进行包含sql语句的查询

    /**     * 使用sql语句进行查询操作     * @param sql     * @return     */    public List queryWithSql(final Stri ...

  7. Sql语句之查询所有学生所有科目分数及总分

    昨天练Sql语句,数据库建了四个表分别是,学生表,课程表,成绩表以及教师表(教师表不在讨论范围),突然想到以前高中时代老师手上的那张成绩表,然后我就寻思着能不能用Sql语句把表打印出来,以下是我的思考 ...

  8. Python与开源GIS:在OGR中使用SQL语句进行查询

    摘要: 属性选择与空间选择都可以看作是OGR内置的选择功能,这两种功能可以解决大部分实际中的问题.但是也有这种时候,就是进行查询时的条件比较复杂.针对这种情况,OGR也提供了更加灵活的解决方案:支持使 ...

  9. SQL 语句在查询分析器执行很快,程序 Dapper 参数化查询就很慢(parameter-sniffing)

    这个问题困扰我好长时间了,使用SQLSERVER 事务探查器找到执行超时的SQL语句,参数查询都是通过执行exe sp_executesql 的存储过程调用,因为它能够分析并缓存查询计划,从而优化查询 ...

随机推荐

  1. 网页中flash设置

    我们现在大部分人做网页,都是直接用DW插入flash,而且DW也是所见即所得,直接生成了相应的flash显示代码.可是我们又有多少人了解这些直接由DW生成的代码呢?其实我接触flash player标 ...

  2. ThreaLocal

    ThreadLocal概念:线程局部变量,是一种多线程间并发访问变量的解决方案.与其synchronized等加锁的方式不同,ThreadLocal完全不提供锁,而使用以空间换时间的手段,为每个线程提 ...

  3. mysql定时删除6个月前的表

    查看定时是否开启: 查看event是否开启 : SHOW VARIABLES LIKE '%event_sche%'; 将事件计划开启 : ; 将事件计划关闭 : ; 代码: BEGIN -- 保存表 ...

  4. 489. Robot Room Cleaner扫地机器人

    [抄题]: Given a robot cleaner in a room modeled as a grid. Each cell in the grid can be empty or block ...

  5. 662. Maximum Width of Binary Tree二叉树的最大宽度

    [抄题]: Given a binary tree, write a function to get the maximum width of the given tree. The width of ...

  6. SAP transportation

    1.CONFIGURATION TRANSPORT flow:DEV(100) --scc1--> DEV(400) --STMS after release-> QAS(510) --S ...

  7. [leetcode]300. Longest Increasing Subsequence最长递增子序列

    Given an unsorted array of integers, find the length of longest increasing subsequence. Example: Inp ...

  8. java图片操作--生成与原图对称的图片

    java图片操作--生成与原图对称的图片 package com.pay.common.util; import java.awt.image.BufferedImage; import java.i ...

  9. Python使用SMTP发送邮件(163,yeah等网易邮箱已测试可以)

    #! /usr/bin/env python# -*- coding: UTF-8 -*-import smtplibfrom email.mime.text import MIMETextmailt ...

  10. json等序列化模块 异常处理

    今日学习内容如下: 1.序列化模块 什么叫序列化——将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化. 比如,我们在python代码中计算的一个数据需要给另外一段程序使用,那我们怎么给? 现 ...