先简单粗暴给个结论,多表连结查询中,on比where更早起作用,系统首先根据各个表之间的联接条件,把多个表合成一个临时表后,再由where进行匹配过滤,where后语句为真,则能查询出来,而通过外连接,例如左连接on,则无论是否为真,都会把左边表的内容都查询出来。

多表查询基本语法

select*from table_1,table_2 where table_1.no=table_2.no

实例:

select*from stu,sc where stu.sno=sc.sno

查出了stu表中与sc表中sno相等的记录

(左)外连接:表的记录将会全部表示出来,而只会显示符合搜索条件的记录,同时右表中没有记录的地方均用NULL替代

select*from table_1 left outer join table_2 on table_1.no=table_2.no

注:outer可省略,右连接和全外连接只需要把left修改成right或full,语法基本一致

实例:

select*from stu left outer join sc on stu.sno=sc.sno

对比where,查出20条记录,多查出了11条记录,因为无论sno是否匹配,及后面语句是否为真,优先显示左表的所有记录,并把不匹配项的右表都设为NULL

【SQL】多表查询中的 外连接 ,on,where的更多相关文章

  1. SQL多表查询中的分页,字段组合综合实例解析

    原文:http://www.jb51.net/article/28753.htm http://xuzhihong1987.blog.163.com/blog/static/2673158720098 ...

  2. SQL 多表查询的几种连接方式

    --创建数据库 create database GoodsSystem go --使用数据库 use GoodsSystem go --创建商品类型表 create table GoodsType ( ...

  3. sql多表查询之一:Where 和 On的秘密

    原文 sql多表查询之一:Where 和 On的秘密 对于还在SQL初级阶段的朋友来说,sql多表查询问题是一个比较有趣也容易出错的技术.什么时候会用到sql多表查询呢?是在两张或两张以上表单中通过某 ...

  4. oracle SQL多表查询

    SQL多表查询 1.集合理论 1.1 什么是集合 具有某种特定性质的事物的总体. 集合的特性:无序性.互异性.确定性. 一个集合可以小到从一个表中取出一行中的一列.              1 ro ...

  5. SQL多表查询总结

    前言 连接查询包括合并.内连接.外连接和交叉连接,如果涉及多表查询,了解这些连接的特点很重要.只有真正了解它们之间的区别,才能正确使用. 一.Union UNION 操作符用于合并两个或多个 SELE ...

  6. 【数据库】sql连表查询

    SQL总结 连表查询 连接查询包括合并.内连接.外连接和交叉连接,如果涉及多表查询,了解这些连接的特点很重要. 只有真正了解它们之间的区别,才能正确使用. 1.Union UNION 操作符用于合并两 ...

  7. 分析比较多表查询中的IN与JOIN

    IN 是子查询的关键字,JOIN 是连接的关键字,项目开发中经常会使用到多表查询,而子查询与连接正是实现多表查询的重要途径.那两者是怎么运行的?IN与JOIN哪个更好?下面就来分析与比较. 现在有te ...

  8. sql多表查询(单表查询略过)

    表library: 表borrow: 表reader: 1.等值连接:(常用) 原理:将多张表组合成一个逻辑大表,即字段相加记录相乘(笛卡尔积). 语法:select * from 表A,表B whe ...

  9. Oracle的查询-多表查询中的一些概念

    --笛卡尔积 select * from emp e,dept d; --等值连接 select * from emp e,dept d where e.deptno=d.deptno --内连接 s ...

随机推荐

  1. html5 websocket 示例,websocket在线聊天,php websocket实例

    WebSocket在线测试工具 http://ws.douqq.com/ 1.连接格式为 ws://IP/域名:端口(示例ws://119.29.3.36:5354) 2.对于内网的测试环境,只需填入 ...

  2. mysql过期修改

    1.打开cmd 2.链接数据库如 mysql -h localhost -P 3306 -u root -proot 3.修改密码 mysql < set password for 用户名@lo ...

  3. 冒泡排序(表格说明)(js)

    冒泡排序我自己的理解是(假设从大到小): 比较每一对相邻元素的值,如果前面的元素小于后面的元素那么就将它们交换过来,每次排序的比较次数逐次递减,最后的比较次数为1.总的排序轮数为数组长度减1.为了便于 ...

  4. Winform中实现向窗体中拖放照片并显示以及拖放文件夹显示树形结构(附代码下载)

    场景 向窗体中拖拽照片并显示效果 向窗体中拖拽文件夹并显示树形结构效果 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 ...

  5. 关于ConfigurationSection自定义config的简单使用

    1.1.自定义config结构(参考对应颜色标注),放到configuration根节点下: <test> <testInfos> <" /> <& ...

  6. BOM对象——History

    BOM对象--History <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  7. composer入门 一些简单常用的命令介绍

    composer是什么 composer是PHP的插件依赖管理工具,我个人感觉和java的Maven.Gradle很类似. Windows OS下安装composer 参考: https://www. ...

  8. 初级模拟电路:4-3 BJT晶体管的交流建模

    回到目录 1. 四种BJT模型概述 对BJT晶体管建模的基本思路就是,用电路原理中的五大基本元件(电阻.电容.电感.电源.受控源)构建一个电路,使其在一定工作条件下能等效非线性半导体器件的实际工作.一 ...

  9. 【译】ModSecurity

    Preface 本篇译ModSecurity 主页的自身介绍. ModSecurity is an open source, cross-platform web application firewa ...

  10. Fiddler抓取内容自动保存本地

    Fiddler抓取内容自动保存本地 一.点击FidderScript 二.选择你想要的获得内容的方法 OnBeforeRequest:发送请求后 OnBeforeResponse:获得响应 三.修改j ...