在《MySQL交叉连接》一节中我们了解了 MySQL 的交叉连接,本节主要介绍多表查询的另一种方式——内连接。

内连接(INNER JOIN)主要通过设置连接条件的方式,来移除查询结果中某些数据行的交叉连接。简单来说,就是利用条件表达式来消除交叉连接的某些数据行。

内连接使用 INNER JOIN 关键字连接两张表,并使用 ON 子句来设置连接条件。如果没有连接条件,INNER JOIN 和 CROSS JOIN 在语法上是等同的,两者可以互换。

内连接的语法格式如下:

SELECT FROM INNER JOIN [ON子句]

语法说明如下。

字段名:需要查询的字段名称。

:需要内连接的表名。

INNER JOIN :内连接中可以省略 INNER 关键字,只用关键字 JOIN。

ON 子句:用来设置内连接的连接条件。

INNER JOIN 也可以使用 WHERE 子句指定连接条件,但是 INNER JOIN ... ON 语法是官方的标准写法,而且 WHERE 子句在某些时候会影响查询的性能。

多个表内连接时,在 FROM 后连续使用 INNER JOIN 或 JOIN 即可。

内连接可以查询两个或两个以上的表。为了让大家更好的理解,暂时只讲解两个表的连接查询。

例 1

在 tb_students_info 表和 tb_course 表之间,使用内连接查询学生姓名和相对应的课程名称,SQL 语句和运行结果如下。

mysql> SELECT s.name,c.course_name FROM tb_students_info s INNER JOIN tb_course c

-> ON s.course_id = c.id;

+--------+-------------+

| name | course_name |

+--------+-------------+

| Dany | Java |

| Green | MySQL |

| Henry | Java |

| Jane | Python |

| Jim | MySQL |

| John | Go |

| Lily | Go |

| Susan | C++ |

| Thomas | C++ |

| Tom | C++ |

+--------+-------------+

10 rows in set (0.00 sec)

在这里的查询语句中,两个表之间的关系通过 INNER JOIN 指定,连接的条件使用 ON 子句给出。

注意:当对多个表进行查询时,要在 SELECT 语句后面指定字段是来源于哪一张表。因此,在多表查询时,SELECT 语句后面的写法是表名.列名。另外,如果表名非常长的话,也可以给表设置别名,这样就可以直接在 SELECT 语句后面写上表的别名.列名。

mysql inner join原理_MySQL INNER JOIN:内连接相关推荐

  1. mysql join原理_MySQL的JOIN(二):JOIN原理

    表连接算法 Nested Loop Join(NLJ)算法: 首先介绍一种基础算法:NLJ,嵌套循环算法.循环外层是驱动表,循坏内层是被驱动表.驱动表会驱动被驱动表进行连接操作.首先驱动表找到第一条记 ...

  2. mysql教程左右链接_mysql的左右内连接用法实例

    本文实例讲述了mysql的左右内连接用法.分享给大家供大家参考.具体如下: 用个例子来解析下mysql的左连接, 右连接和内连接 create table user_id ( id decimal(1 ...

  3. mysql与配偶同性_mysql 左,右,内连接

    左右连接 全相乘方法(效率很低) mysql> select * from test10; +------+-------+ | id   | sname | +------+-------+ ...

  4. mysql join 循环_MySQL的JOIN(三):JOIN优化实践之内循环的次数

    这篇博文讲述如何优化内循环的次数.内循环的次数受驱动表的记录数所影响,驱动表记录数越多,内循环就越多,连接效率就越低下,所以尽量用小表驱动大表.先插入测试数据. CREATE TABLE t1 ( i ...

  5. mysql join图解_MySQL中Join算法实现原理分析[多图]

    在MySQL 中,只有一种 Join 算法,就是大名鼎鼎的 Nested Loop Join,他没有其他很多数据库所提供的 Hash Join,也没有 Sort Merge Join.顾名思义,Nes ...

  6. mysql natural join用法_MySQL NATURAL JOIN

    NATURAL JOIN 也叫自然连接,实际是属于 JOIN 的一种. MySQL NATURAL JOIN 语法如下: ... FROM table1 NATURAL JOIN table2 ... ...

  7. mysql的join算法_mysql的Join算法-阿里云开发者社区

    实为吾之愚见,望诸君酌之!闻过则喜,与君共勉 测试数据 CREATE TABLE `dept_emp` ( `emp_no` int(11) NOT NULL, `dept_no` char(4) N ...

  8. mysql自然连接和等值连接_mysql sql99语法 内连接等值连接

    #案例:查询员工名.部门名 SELECT last_name,department_name FROM employees e INNER JOIN departments d ON e.`depar ...

  9. mysql内连接和交叉连接_MySQL中的内连接、外连接、交叉连接

    内连接(INNER JOIN): 分为三种 等值连接.自然连接.不等连接 外连接(OUTER JOIN): 左外连接(LEFT OUTER JOIN或LEFT JOIN) 右外连接(RIGHT OUT ...

最新文章

  1. 微信小程序客服功能 把当前页面的信息卡片发送给客服
  2. 数学推导+纯Python实现机器学习算法:逻辑回归
  3. 神仙打架激辩深度学习:LeCun出大招,马库斯放狠话,机器学习先驱隔空“互怼”...
  4. Linux终端设备详解
  5. torch topk
  6. 第八周课上额外项目:pwd的实现
  7. Java基于JavaMail实现向QQ邮箱发送邮件遇到的问题
  8. python 连接 oracle 循环,4.使用cx_Oracle连接Oracle(高级篇)
  9. 这个锅,运维来背?忘记续期 HTTPS 证书,网易邮箱大量用户无法使用
  10. 机器学习项目中使用统计学方法的十个例子
  11. r语言保存成html文件,R语言统计结果输出至本地文件的几种方法示例
  12. Java中异或的操作
  13. excel按照颜色排序
  14. 随机矩阵理论_随机PWM可降低噪声并减少三相逆变器应用中的辐射
  15. MySQL 简单查询语句练习题(4+18)
  16. 正则表达式入门(上)---字符组和量词
  17. 用纯CSS实现优雅的tab页
  18. 苹果手机扫描文件并转换格式,怎么把扫描文件转换成文字,扫描出来的文件格式换个可以复制的文字
  19. android 图片底部波浪线,Android实现波浪线效果(xml bitmap)
  20. 网络营销十大要点秒懂

热门文章

  1. android切换activity会闪屏的解决方法
  2. 3ds Max:加强型文本
  3. java画蝴蝶_java之数组
  4. 用STATECAD快速设计有限状态机
  5. java报错解决方法
  6. 图数据结构之邻接链表Adjacency List(Python版)
  7. markdown使用haroopad导出PDF
  8. 07-桥梁模式Quarkus实现
  9. shell mysql中单引号_Shell脚本中单引号(‘)和双引号(“)的使用区别
  10. Android源码编译make的各类错误解决方案汇总