这篇文章主要介绍了MySQL内连接指的是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
通道网站制作公司哪家好,找创新互联建站!从网页设计、网站建设、微信开发、APP开发、响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联建站2013年至今到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联建站。
说明
1、内部连接类似于自然连接,但内部连接不要求比较两个表的同名属性列,可以用on或using指定两个表比较的字段(比较的字段不要求同名)。
2、内部连接的条件可以不写,此时查询的是笛卡尔积。
实例
# 表的内连接,内连接是结果集中只保留符合连接条件的记录 -- 方法一 SELECT e.empno,e.ename,d.dname -- 连接目标 FROM t_emp e JOIN t_dept d -- 连接条件 ON e.deptno=d.deptno; -- 方法二 SELECT e.empno,e.ename,d.dname -- 连接目标 FROM t_emp e,t_dept d -- 连接条件 WHERE e.deptno=d.deptno; -- 内连练习一 # 不同表的内连接 # 查询每个员工的工号,姓名,部门名称,底薪,职位,工资等级 SELECT e.empno,e.ename,d.dname,e.sal,e.job,s.grade FROM t_emp e JOIN t_dept d ON e.deptno=d.deptno JOIN t_salgrade s ON e.sal BETWEEN s.losal and s.hisal; # 相同表的内连接一 # 查询Scott相同部门的员工都有谁 SELECT e2.ename FROM t_emp e1 JOIN t_emp e2 ON e1.deptno=e2.deptno WHERE e1.ename="SCOTT" AND e2.ename!="SCOTT"; # 相同表的内连接二 # 查询底薪超过公司平均底薪的员工信息 SELECT e.empno,e.ename,e.deptno,e.job FROM t_emp e JOIN (SELECT avg(sal) as avgs FROM t_emp) t ON e.sal>=t.avgs; # 查询RESEARCH部门的人数,最高底薪、最低底薪、平均底薪、平均工龄 SELECT COUNT(*),MAX(e.sal),MIN(e.sal),AVG(e.sal), FLOOR(AVG((DATEDIFF(NOW(),e.hiredate)/365))) FROM t_emp e JOIN t_dept d ON e.deptno=d.deptno WHERE d.dname="RESEARCH"; SELECT FLOOR(29.9) # 29 SELECT CEIL(1.1) # 1.2 # 查询每种职业的最高工资、最低工资、平均工资、最高工资等级和最低工资等级 SELECT e.job, MAX(e.sal+IFNULL(e.comm,0)), MIN(e.sal+IFNULL(e.comm,0)), AVG(e.sal+IFNULL(e.comm,0)), MAX(s.grade), MIN(s.grade) FROM t_emp e JOIN t_salgrade s ON (e.sal+IFNULL(e.comm,0)) BETWEEN s.losal AND s.hisal GROUP BY e.job; # 查询每个底薪超过部门平均底薪的员工信息 SELECT e.empno,e.ename,e.sal FROM t_emp e JOIN (SELECT deptno,AVG(sal) as depsal FROM t_emp GROUP BY deptno) t ON e.deptno=t.deptno AND e.sal>depsal;
感谢你能够认真阅读完这篇文章,希望小编分享的“mysql内连接指的是什么”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!