当前位置: 首页 > news >正文

MySQL4多表查询 内连接

多表查询

数据准备

CREATE DATABASE  db4;
USE db4;
-- 创建部门表
create table if not exists dept(deptno varchar(20) primary key ,  -- 部门号name varchar(20) -- 部门名字
);-- 创建员工表
create table if not exists emp(eid varchar(20) primary key , -- 员工编号ename varchar(20), -- 员工名字age int,  -- 员工年龄dept_id varchar(20)  -- 员工所属部门
);-- 给dept表添加数据
insert into dept values('1001','研发部');
insert into dept values('1002','销售部');
insert into dept values('1003','财务部');
insert into dept values('1004','人事部');-- 给emp表添加数据
insert into emp values('1','乔峰',20, '1001');
insert into emp values('2','段誉',21, '1001');
insert into emp values('3','虚竹',23, '1001');
insert into emp values('4','阿紫',18, '1001');
insert into emp values('5','扫地僧',85, '1002');
insert into emp values('6','李秋水',33, '1002');
insert into emp values('7','鸠摩智',50, '1002'); 
insert into emp values('8','天山童姥',60, '1003');
insert into emp values('9','慕容博',58, '1003');
--注意,此处部门表中没有存在1005对应的部门,当然部门1004在此出没有员工,
--只是为了演示效果
insert into emp values('10','丁春秋',71, '1005');SELECT * FROM emp;
SELECT * FROM dept;

一对一 一般需要表合并
一对多
多对多 需要从表

内连接

在这里插入图片描述

笛卡尔积

-- 笛卡尔积 A表m条,B表n条,查询结果为m*n条 
SELECT *
FROM emp,dept;

隐藏内连接

-- 隐式内连接(SQL92标准)
-- SELECT 字段列表 FROM1,2... WHERE 条件;
-- 隐式内连接
SELECT *
FROM emp,dept
WHERE dept.deptno=emp.dept_id;

显式内连接

-- 显式内连接(SQL99标准) []包括的可以省略不写
-- SELECT 字段列表 FROM1 [INNER] JOIN2 ON 条件;
-- 显式内连接
SELECT *
FROM emp INNER join dept
ON dept.deptno=emp.dept_id;

内连接应用:

-- 查询在研发部的员工信息
SELECT *
FROM emp,dept
WHERE dept.deptno=emp.dept_id AND dept.NAME='研发部';SELECT *
FROM emp INNER join dept
ON dept.deptno=emp.dept_id AND dept.NAME='研发部';-- 查询每个部门的员工数,并升序
SELECT NAME,COUNT(*) AS con
FROM emp,dept
WHERE emp.dept_id=dept.deptno
GROUP BY deptno,NAME
ORDER BY con;-- 查询人数大于3的部门,并按照人数进行降序
SELECT NAME,COUNT(*) AS con
FROM emp,dept
WHERE emp.dept_id=dept.deptno
GROUP BY deptno,NAME
HAVING con>=3
ORDER BY con DESC;
http://www.lryc.cn/news/418502.html

相关文章:

  • Java -数组
  • .prettierrc.js 有什么用
  • haproxy七层代理
  • <数据集>柑橘缺陷识别数据集<目标检测>
  • Go开发后端和Vue3开发前端的前后端分离框架中自己手戳一个OA流程审批、工作流引擎给新时代一个漂亮便捷的工作流引擎
  • 深入理解 toDto 与 toEntity:结合 Eladmin 框架的最佳实践
  • 基于区块链的供应链应用开发
  • 获取GORM执行时的sql字符串
  • Linux系统使用Docker安装RStudio服务并实现任意浏览器远程访问
  • 【原创】springboot+mysql法律咨询网设计与实现
  • Vue 应用实例的关键方法与配置案例二
  • Java面试题--JVM大厂篇之破解 JVM 性能瓶颈:实战优化策略大全
  • Apache Curator 创建节点时,如果节点存储就会抛出异常吗?
  • 【食物链】
  • 【RN】实现markdown文本简单解析
  • webpack plugin
  • 【busybox记录】【shell指令】date
  • 同态加密和SEAL库的介绍(八)性能
  • 华为OD-D卷数的分解
  • rk3588 low_delay_net_display注意事项
  • Spring Boot 快速入门样例【后端 3】
  • Linux云计算 |【第二阶段】NETWORK-DAY2
  • Java面试题(基础篇)③
  • Qt动态调用 - QMetaObject::invokeMethod
  • html+css+js网页设计 星享咖啡6个页面(带js) ui还原度90%
  • docker上传镜像至阿里云
  • POS刷卡开发源码之语音播报-CyberWinApp-SAAS 本地化及未来之窗行业应用跨平台架构
  • jupyter notebook魔法命令
  • Mysql事件
  • Unity Console 窗口输出对齐