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

如题所述

显式内连接就是使用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张或更多表连接时比较明显
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-10-15
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
个人理解,当只是两张表时,显示和隐式都可以使用,而当需要多张表进行内链接时,就必须使用显示内连接的格式了,如果使用隐式则会报错。。。
第2个回答  2018-05-24
内连接:指连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件。
外连接:连接结果不仅包含符合连接条件的行同时也包含自身不符合条件的行。包括左外连接、右外连接和全外连接。
左外连接:左边表数据行全部保留,右边表保留符合连接条件的行。
右外连接:右边表数据行全部保留,左边表保留符合连接条件的行。
全外连接:左外连接 union 右外连接。追问

你回答的是什么啊,你能不能看了问题再回答,要是不知道别乱说。

相似回答