为了账号安全,请及时绑定邮箱和手机立即绑定

mysql显示内连接和隐式内连接的区别,什么时候非要用到显示内连接。

mysql显示内连接和隐式内连接的区别,什么时候非要用到显示内连接。

茅侃侃 2019-07-28 16:54:59
mysql显示内连接和隐式内连接的区别,什么时候非要用到显示内连接。
查看完整描述

4 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

显式内连接就是使用inner join的办法,写起来复杂些
以windows版本mysql里自带的sakila数据库为例
显式内连接语法 select 字段名 from 表1 join 表2 on 连接条件 [ join 表3 on 连接条件 ... ] [ where 查询条件 ... ];
SELECT store.address_id,first_name,last_name FROM store INNER JOIN staff ON store.manager_staff_id=staff.staff_id;
结果:
address_id first_name last_name
1 Mike Hillyer
2 Jon Stephens
隐式内连接语法 select 字段名 from 表1,表2 [ ,表3... ] where 连接条件 [ and 查询/连接条件 ... ];
SELECT store.address_id,first_name,last_name FROM store,staff WHERE store.manager_staff_id=staff.staff_id;
结果:
address_id first_name last_name
1 Mike Hillyer
2 Jon Stephens
相对而言,隐式连接好理解好书写,语法简单,担心的点较少。但是显式连接可以减少字段的扫描,有更快的执行速度。这种速度优势在3张或更多表连接时比较明显



查看完整回答
反对 回复 2019-07-28
?
慕沐林林

TA贡献2016条经验 获得超9个赞

SELECT * FROM emp e INNER JOIN emp m ON e.mgr=m.empno INNER JOIN dept d ON e.deptno=d.deptno AND e.hiredate<m.hiredate
个人理解,当只是两张表时,显示和隐式都可以使用,而当需要多张表进行内链接时,就必须使用显示内连接的格式了,如果使用隐式则会报错。。。

查看完整回答
反对 回复 2019-07-28
?
月关宝盒

TA贡献1772条经验 获得超5个赞

SELECT * FROM emp e INNER JOIN emp m ON e.mgr=m.empno INNER JOIN dept d ON e.deptno=d.deptno AND e.hiredate<m.hiredate
个人理解,当只是两张表时,显示和隐式都可以使用,而当需要多张表进行内链接时,就必须使用显示内连接的格式了,如果使用隐式则会报错。。。

查看完整回答
反对 回复 2019-07-28
?
莫回无

TA贡献1865条经验 获得超7个赞

如果你的程序和mysql是在同意服务器上,那么你是使用localhost:3306和IP:3306没有区别。
如果不在同一服务器上,那你只能使用IP:3306来连接mysql。连接速度会有少许慢,但是感觉不出来。除非你程序服务器在南极,mysql在北极

查看完整回答
反对 回复 2019-07-28
  • 4 回答
  • 0 关注
  • 3540 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信