目录

  • 1 自然连接
  • 2 USING连接

1 自然连接

自然连接是SQL99在SQL92的基础上新增的语法,用关键字 NATURAL JOIN 表示。自然连接类似于SQL92中的等值连接,它会自动查询两张表中所有相同的字段,然后进行等值连接。

举个栗子,这是SQL92语法中等值连接的写法:

SELECT emp.`employee_id`, emp.`last_name`, dept.`department_name`, emp.`manager_id`
FROM employees emp JOIN departments dept
ON emp.`department_id` = dept.`department_id`
AND emp.`manager_id` = dept.`manager_id`;

在SQL99中可以使用自然连接 NATURAL JOIN 代替:

SELECT emp.`employee_id`, emp.`last_name`, dept.`department_name`, emp.`manager_id`
FROM employees emp NATURAL JOIN departments dept;

查询结果:

可以看到,虽然使用自然连接 NATURAL JOIN 代替更简洁,但其远不如SQL92中的等值连接那样灵活。因为自然连接 NATURAL JOIN 是一定会自动查询两张表中所有相同的字段,但很多时候我们仅需要一个相同字段作为连接条件即可,并不需要所有相同字段作为连接条件,因此自然连接 NATURAL JOIN 的应用范围是十分有限的。

2 USING连接

USING 连接是指定表中同名字段进行等值连接。但是只能配合 JOIN 一起使用。

举个栗子,在SQL92语法中的等值连接如下:

SELECT emp.`employee_id`, emp.`last_name`, dept.`department_name`
FROM employees emp, departments dept
WHERE emp.`department_id` = dept.`department_id`;

如果连接条件中的字段同名,则可以使用 USING 连接:

SELECT emp.`employee_id`, emp.`last_name`, dept.`department_name`
FROM employees emp JOIN departments dept
USING (department_id);

查询结果:

USING 连接的灵活度比自然连接 NATURAL JOIN 更强,但其只能用在两张表的同名字段进行等值连接。如果连接条件的字段不同名 (如,自连接) ,就无法使用 USING 连接,其依然具有一定的局限性。

【MySQL】MySQL的自然连接和USING连接详细总结相关推荐

  1. MySQL 学习笔记(15)— 连接查询(内连接、左外连接、右外连接、全外连接、交叉连接、自然连接等)

    本文参考:https://gitbook.cn/gitchat/column/undefined/topic/5db92b68a9c3a53bc3800eff SQL 支持的连接查询包括内连接.外连接 ...

  2. MySQL的自然联结+外部联结(左外连接,右外连接)+内部联结

    [0]README 0.1)本文旨在review MySQL的自然联结+外部联结(左外连接,右外连接)+内部联结 的相关知识: [1]自然联结 1)自然联结定义:无论何时对表进行联结,应该至少有一个列 ...

  3. Mysql表连接:内连接、外连接、交叉连接、自然连接真的都不一样吗

    文章目录 前言 测试环境 创建测试数据 对比测试 内连接 交叉连接 外连接 左外连接 右外连接 自然连接 一般自然连接 自然左外连接 自然右外连接 STRAIGHT_JOIN 逗号分隔连接表 各种连接 ...

  4. mysql 自然连接、内连接、外连接的区别

    数据库中的连接join分为内连接.自然连接.外连接,外连接又分为左外连接.右外连接.全外连接(注意:mysql不支持全外连接) 首先,我们先来建两张表,第一张表命名为kemu,第二张表命名为score ...

  5. mysql自然连接和等值连接_区分笛卡儿积,自然连接,等值连接,内连接,外连接...

    1.区分笛卡儿积,自然连接,等值连接,内连接,外连接(左连接,右连接和全连接) 假设存在两张表R和S,这里使用的是MySQL数据库. 下面这张表是R 下面这张是S 为了测试左连接和右连接,现在增加一张 ...

  6. mysql 笛卡尔积_Mysql(笛卡尔积、等值连接、自然连接、外连接)

    1.笛卡尔积 笛卡尔积的元素是元组,关系A和B的笛卡尔积可以记为(AXB),如果A为a目,B为b目,那么A和B的笛卡尔积为(a+b)列.(a*b)行的元组集合. (1)学生表和分数表中的信息: 学生表 ...

  7. mysql等值连接概念_Mysql(笛卡尔积、等值连接、自然连接、外连接)

    1.笛卡尔积: 笛卡尔积的元素是元组,关系A和B的笛卡尔积可以记为(AXB),如果A为a目,B为b目,那么A和B的笛卡尔积为(a+b)列的元组集合. (1)学生表和分数表中的信息: 学生表: 分数表( ...

  8. 深入理解MySQL的外连接、内连接、交叉连接

    1.内联接(典型的联接运算,使用像 =  或 <> 之类的比较运算符).包括相等联接和自然联接. 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 students和 ...

  9. mysql外连接插座_深入理解SQL的四种连接-左外连接、右外连接、内连接、全连接...

    1.内联接(典型的联接运算,使用像 =  或 <> 之类的比较运算符).包括相等联接和自然联接. 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 students和 ...

最新文章

  1. 【Nginx】如何建立新连接
  2. android studio 模拟器中文乱码
  3. PHP(一) 开发环境搭建
  4. php mysql筛选查询,php-Vicidial的MySQL筛选器
  5. 音频处理九:(参数估计)
  6. zTree使用技巧与详解
  7. Javascript基础(二)
  8. PHP二开 三语言( 中文、英语、马来语) 自动抢单系统源码
  9. mysql链接压测_MySQL压测工具mysqlslap的介绍与使用
  10. 动态解析dll及使用类
  11. Effective C# 原则3:选择is或者as操作符而不是做强制类型转换(翻译)
  12. kotlin和python哪个好_对比 Go 语言,Kotlin 有什么优势和劣势?
  13. switch 大气层双系统 进入破解系统 及安装nsp nsz 格式教程
  14. 内存泄露的检测工具——Valgrind
  15. Unity+Vuforia实现AR图片识别应用
  16. 信息系统项目管理师必背核心考点(十)信息系统规划
  17. “PE文件格式”1.9版 完整译文(附注释)
  18. 在Centos8上部署Django环境(Nginx+mysql+uwsgi)
  19. 模糊集合和隶属度详解
  20. 【STM32学习笔记-点亮LED灯】

热门文章

  1. JAVA程序开发参考手册
  2. ubuntu开机出现initramfs该如何解决
  3. 使用StarUML画类图
  4. 设计模式学习笔记总结
  5. Linux kermit配置及使用
  6. 局域网、广域网、Internet
  7. 小白自总结【遥感图像目视解译】ArcGIS下 1/6北京区域 五类地物
  8. 【SQL基础】SQL常用函数简要解析
  9. redhat 7配置ftp server
  10. folium基础内容介绍