感谢本文几种描述方法,让我解决了最近的一段时间的疑问,转载下来,以供后面查血使用。

本文链接:https://blog.csdn.net/huanghanqian/article/details/52847835

四种join的区别已老生常谈:

INNER JOIN(也可简写为JOIN): 如果表中有至少一个匹配,则返回行

LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行

RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行

FULL JOIN: 只要其中一个表中存在匹配,就返回行

那么问题来了,还有一种常见的写法是将表用逗号隔开,那这个又是怎么连接的呢。

先看这两张表。

使用逗号隔开的方法来连接表:

SELECT *

FROM employee,department

WHERE employee.DepartmentID = department.DepartmentID

输出结果:

可以很明显发现:这不就是inner join嘛!

没错,答案正是这样:sql用逗号连接多张表对应的是 inner join。

为了严谨性,我到处找sql的官方文档来证实这一点。然而搜不出来sql的文档(谁知道网址请务必发我),最后还是在维基百科上找到了可以当作论据的话。

SQL 定义了两种不同语法方式去表示"连接"。首先是"显式连接符号",它显式地使用关键字

JOIN

,其次是"隐式连接符号",它使用所谓的"隐式连接符号"。隐式连接符号把需要连接的表放到

SELECT

语句的

FROM

部分,并用逗号隔开。这样就构成了一个"交叉连接",

WHERE

语句可能放置一些过滤谓词(过滤条件)。那些过滤谓词在功能上等价于显式连接符号. SQL 89标准只支持内部连接与交叉连接,因此只有隐式连接这种表达方式;SQL 92标准增加了对外部连接的支持,这才有了

JOIN

表达式。

也就是说,

SELECT *

FROM employee

INNER JOIN department

ON employee.DepartmentID = department.DepartmentID

等价于:

SELECT *

FROM employee,department

WHERE employee.DepartmentID = department.DepartmentID

至于哪个效率高一点,其实两者是一回事,没有区别。只是内连接是由SQL 1999规则定的书写方式而已。

另外,在写sql语句测试4种join的时候,发现mysql对于full join返回的结果和inner join一模一样。经查阅资料,才发现原来mysql不支持full join啊。

见:How to do a FULL OUTER JOIN in MySQL?

————————————————

版权声明:本文为CSDN博主「huanghanqian」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/huanghanqian/article/details/52847835

简要描述内部连接和外部连接之间的区别_sqlserver的几种常见连接方法相关推荐

  1. 简要描述内部连接和外部连接之间的区别_创新性的M12推拉式连接器推拉标准—跨制造商自动化技术的里程碑...

    "八家知名制造商¬ – 菲尼克斯,浩亭,莫仕,穆尔电子,宾德,康耐,艾查和魏德米勒因建立M12推拉式连接器的推拉锁紧机制而在市场上确立了地位.我们共同追求一个目标,即确保各个制造商之间的兼容 ...

  2. 【重难点】【计算机网络 02】TCP 和 UDP 的区别、TCP 的三次握手和四次挥手、HTTP 和 HTTPS、HTTP 各版本之间的区别、HTTP 如何实现长连接

    [重难点][计算机网络 02]TCP 和 UDP 的区别.TCP 的三次握手和四次挥手.HTTP 和 HTTPS.HTTP 各版本之间的区别.HTTP 如何实现长连接 文章目录 [重难点][计算机网络 ...

  3. 卷积层和全连接层的区别_卷积神经网络中全连接层作用理解总结

    前言 一般来说,卷积神经网络会有三种类型的隐藏层--卷积层.池化层.全连接层.卷积层和池化层比较好理解,主要很多教程也会解释. •  卷积层(Convolutional layer)主要是用一个采样器 ...

  4. 等值连接、自然连接和内连接之间的区别

    引言 假设有这样四个表student.teacher.score和course它们的定义如下: create table student(学号 int primary key,姓名 varchar(2 ...

  5. oracle自连接和自然连接,一个θ连接,equijoin和自然连接之间的区别

    尽pipe解释确切差异的答案没有问题,但我想说明关系代数是如何转化为SQL的,以及这三个概念的实际价值是什么. 你的问题的关键概念是join的想法. 为了理解一个连接,你需要理解一个笛卡尔乘积(这个例 ...

  6. 通用计算机连网,平板电脑怎么连接网络?平板电脑通用4种网络连接网络教程...

    1.平板电脑连接WiFi上网的操作方法 主界面状态下按"Menu菜单键",点"设置",再点"无线和网络",在第一项"Wi-Fi&q ...

  7. android wifi 静态地址设置_安卓手机连接wifi故障的6种常见解决方法

    现如今,人们已经离不开wifi的使用了,有了wifi,流量不够用什么的都是浮云.如果手机连接wifi出了问题怎么办?不要抓狂不要沮丧,六招让你手机wifi满血复活! 第一招:关闭并重启WIFI连接 用 ...

  8. 卷积层和全连接层的区别_CNN卷积层、全连接层的参数量、计算量

    我们以VGG-16为例,来探讨一下如何计算卷积层.全连接层的参数量.计算量.为了简单.直观地理解,以下讨论中我们都会忽略偏置项,实践中必须考虑偏置项. [卷积层的参数量] 什么是卷积层的参数? 卷积层 ...

  9. 深入分析内连接、外连接、左连接、右连接、等值连接、自然连接和自连接之间的区别,看这篇就够了!

    多表查询经常用到连接,各种连接之间的区别应该注意总结. 首先大概认识各种连接的关系和由来: 表之间的连接常有以下两种: 一.:在SELECT语句的WHERE子句中使用比较运算符给出连接条件,对表进行连 ...

最新文章

  1. ie6不能播放视频问题
  2. python怎么定义全局字典_一种Python全局配置规范以及其魔改
  3. logback 常用配置详解appender
  4. 二叉树三种递归和非递归遍历 层序遍历
  5. 如何查找android emulator内核的精确版本
  6. LiveNVR高性能稳定RTSP、Onvif探测流媒体服务配置通道接入海康、大华等摄像机进行全终端无插件直播...
  7. HTML+CSS实现弹跳球效果
  8. mysql中游标能不能更新数据库_MySQL与MariaDB中游标的使用
  9. C++类的构造函数、析构函数与赋值函数
  10. XDocument读取xml的所有元素以及XPath语法
  11. php匿名聊天室开源,[开源项目]基于WebSocket的匿名聊天室
  12. 机械臂模糊PID控制matlab仿真
  13. 计算机exce常用功能,EXCEL常用函数介绍(1)EXCEL 函数 -电脑资料
  14. 告别微服务:究竟是千军易得还是一将难求
  15. android 查看 屏幕刷新率,屏幕刷新率检查app
  16. 编程题走迷宫_编程题——机器人走迷宫 (用C语言)
  17. PMSG永磁同步发电机并网仿真模型
  18. 第一台计算机是怎么输出,世界上第一台计算机是如何诞生的?
  19. 多面张亚勤:导师、管理者和普通人
  20. 一篇带你了解如何使用纯前端类Excel表格构建现金流量表

热门文章

  1. LINUX学习笔记共五部分
  2. LAMP平台架构浅析
  3. C和C++实务精选丛书
  4. 英国Carmarthen Learning Centre校长Mr Stuart来华访问,与荣新IT培训中心达成教学合作关系...
  5. 三年java经验应该会什么?
  6. Java并发编程之synchronized关键字解析
  7. spark中saveAsTextFile如何最终生成一个文件
  8. 自定义控件SettingItemView
  9. java for 线程_如何在for循环中使用多线程
  10. Zabbix监控——proxy 分布式监控配置