加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql常用sql语句(16)- inner join 内连接

发布时间:2020-12-12 02:13:29 所属栏目:MySql教程 来源:网络整理
导读:测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html ? 前言 利用 条件表达式 来消除交叉连接(cross join)的多余数据行 inner join通过? on ?来设置条件表达式,如果没有加on的话,inner join和cross join是相同的 ? cr

测试必备的Mysql常用sql语句系列

https://www.cnblogs.com/poloyy/category/1683347.html

?

前言

  • 利用条件表达式来消除交叉连接(cross join)的多余数据行
  • inner join通过?on?来设置条件表达式,如果没有加on的话,inner join和cross join是相同的
  • ?cross join ... on??和 ?inner on ?其实效果也是一样的(但在标准sql中,cross join是不支持on的,只是Mysql支持)

?

inner join 的语法格式

SELECT <字段名> FROM <表1INNER JOIN <表2> [ON子句]
  • inner join 可以连接 ≥ 两个的表
  • inner join 也可以使用 where 来指定连接条件,但是?on?是官方标准写法,而且?where?可能会影响查询性能
  • inner join 也可以只写 join 不加 inner?

?

先看看dept、emp表有什么数据

dept表

emp表

inner join 的栗子

标准内连接:查询每个员工的部门详细信息

两张表相连

select * from emp as a join dept as b on a.dept_id = b.id;
as a = b.id;

注意点

可以看到emp表id=7、9的数据是没有返回的,dept表id=4的数据也是没有返回的,这就是inner join的特性:只有两张表相互匹配到的数据才会返回(满足查询条件的数据),简单理解就是:取交集

特殊内连接,自连接:查询有leader的员工以及leader信息

自连接:同一张表相连

join emp on a.leader = b.id;

特殊内连接,不等值连接

不等值连接:查询条件的逻辑运算符是大于或小于

> b.id;

知识点

  • 在多表查询的时候,字段名都需要通过表名指定??表名.字段名??
  • 如果表名太长可以用给表起别名,这样就变成??别名.字段名??,如上面的?a?、?b?就是别名,?a.dept_id?、?b.id?

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读