Mysql之多表查询

news2024/10/7 10:22:47

简单测试

由于我们之前没学过多表查询
我们简单测试一下初学者认为的多表查询

SELECT * FROM emp,dept

在这里插入图片描述
这是我们的输出结果
其实不难发现
1.返回的结果就是,第一张表一个个数据取出然后和第二张表所有组合
最后返回的是含有两张表的所有列
2.一共返回的记录数=第一章表行数*第二张表的行数
3.这样表查询默认返回的结果,成为笛卡尔集
4.关键就是怎么去筛选返回的数据比如WHERE

这里就是我们需要获取部门名和工资,但是不在同一张表,就用相关的数据做踏板,进行跳进判断

筛选关键就是找两个表有联系/相同的数据,或者说有效信息的特征!,比如这两个都有deptno可以用这个做条件
在这里插入图片描述
看这几行数据其实有效信息只有第二行,也就是dept的deptno和emp的deptno相同的时候,其他的deptno都不一样,根本无效

需要分析

SELECT *
	FROM emp,dept
	WHERE emp.deptno = dept.deptno

这样就能筛选出我们需要的信息了
在这里插入图片描述

解决需求

在这里插入图片描述

-- 部门名和部员的工资,且不能差deptno,因为两个表都有这一列
-- 不知道显示哪一列,可以写emp.deptno就是emp表里的了
SELECT ename,sal FROM dept,emp
	WHERE dept.`deptno` = emp.`deptno`

技巧:至少要有n-1个筛选条件才可能使n个表的查询不出现笛卡尔集
2个表1个筛选条件可能是笛卡尔集也可能不是,我们上面那个就不是,不过你换个条件就是了,因为两张表不是笛卡尔集一定需要那个条件

-- 显示部门名为10的部门名,员工名和工资
SELECT ename,sal,dname,emp.`deptno`
	FROM emp,dept
	WHERE emp.`deptno`=dept.`deptno` AND emp.`deptno`=10
	-- 这个条件也是不能瞎写!
-- 显示各个员工姓名,工资和工资级别
-- 思路:姓名,工资来自emp
-- 工资级别来自salgrade表
SELECT ename,sal,grade 
	FROM emp,salgrade
	WHERE sal>losal AND hisal>sal 

一定要注意表达式的形式,不要瞎写,比如我刚开始就是写为hisal>sal>losal不能这样写,按照编程规范写!
最好是几个条件分开,用AND连接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/169451.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【ES6篇新语法】(1)ES6介绍及常量声明、对象数组,附实例详解

【写在前面】 应一些粉丝的要求,整理一些ES6相关的文章,因此借这个岁末之际,给大家整理一篇ES6的相关的博客,不管是面试还是在实际的编程上,我们都常提到ES6这个词,可能前几年比较热门,希望大家…

焊接变形的原因以及防止焊接变形的措施

焊接变形的原因   在焊接过程中对焊件进行了局部的、不均匀的加热是产生焊接应力及变形的原因。焊接时焊缝和焊缝附近受热区的金属发生膨胀,由于四周较冷的金属阻止这种膨胀,在焊接区域内就发生压缩应力和塑性收缩变形,产生了不同程度的横向…

喜报!西门子低代码连续四年获评Gartner企业低代码应用平台魔力象限领导者

点击下载最新发布的Gartner魔力象限图™https://www.mendix.com/resources/gartner-magic-quadrant-for-low-code-application-platforms/?utm_mediumpr&utm_campaignMQ&utm_sourceMQ#formWrapper 想象一下,一个为持续数字化转型做好准备的组织会是什么样…

EXTI中断以及系统滴答定时器SysTick的配置和使用

前言 EXTI中断来判断按键按下 EXTI即外部中断/事件控制器,总共支持19个中断/事件请求。每一条中断线都有独立的使能和产生中断后的标志位。 上图可见,中断/时间线0-15,总共16条线分配给了IO,通过设置AFIO的AFIO_EXTICR1、AFIO_…

内核调试之Kdump的原理及配置

术语介绍生产内核(production kernel):产品或者线上服务器当前运行的内核。捕获内核(capture kernel):系统崩溃时,使用kexec启动的内核,该内核用于捕获生产内核当前内存中的运行状态…

【windows terminal】普通用户免密ssh登录阿里云linux服务器

创建用户 [rootxxx~]# adduser linuxcool创建密钥 使用如下命令创建密钥 [rootxxx~]# ssh-keygen -t rsa创建的密钥路径 Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. 将公钥导入authorized_keys&…

《Go 并发数据结构和算法实践》学习笔记 Day 2

系列文章目录 这是本周期内系列打卡文章的所有文章的目录 《Go 并发数据结构和算法实践》学习笔记 Day 1_jahentao的博客-CSDN博客 文章目录系列文章目录前言一、Skiplist是什么?(What)Skiplist的基本接口查找元素插入元素删除元素二、并行化改造1.并发查找2.并发删…

struts漏洞总结

目录 概述 struts2漏洞 S2-001 漏洞原理 复现 struts2漏洞 S2-005 原理 分析一下003 复现 struts2漏洞s2-007 struts2漏洞 S2-008 原理 复现 struts2漏洞 S2-009 原理 复现 struts2漏洞 S2-012 原理 复现 struts2漏洞 S2-013 原理 复现 struts2漏洞 S2-0…

闭包中的内存泄漏

一.闭包的内存泄漏 1.为什么有些AO对象就不会被销毁? 1)普通函数中 上述代码在执行foo函数的时候,内存中的过程。 执行完foo函数之后,foo的函数上下文被销毁了,那么就不会指向foo的AO对象了。 那么AO对象也会被销毁…

格创东智蝉联入选工信部工业互联网APP优秀解决方案名单

1月13日,工信部发布《2022年工业互联网APP优秀解决方案名单公示》,由格创东智研发的 “基于深度学习技术的 AI智能检测(天枢AI)APP 应用解决方案”、“面向泛半导体行业的设备自动控制(EAP)APP解决方案”入…

一文详解SPI通信原理

首先我们先了解一下单工、半双工、全双工是什么概念 概念:(Serial Peripheral Interface,串行外设接口),是一种全双工协议的外设总线,同步串行通信 单工:电视 半双工:呼叫机 全双工:电话 SPI是单主设备(Single Master)通信协议&#xff…

商业智能 BI 赋能年底的财务分析

职场中总有些不能说的秘密,比如月底和年底的时候,千万不要去惹财务!尤其是年底,财务部门需要统计分析一整年的费用支出和经营收入,各种结算分析,还有新一年的预算,数据量庞大、业务系统分散、报…

【SpringCloud14】SpringCloud Bus消息总线

1.概述(对于Config的加深和扩充) 1.1 分布式自动刷新配置功能 SpringCloud Bus配合SpringCloud Config使用可以实现配置的动态刷新 Spring Cloud Bus是用来将分布式系统的节点与轻量级消息系统链接起来的框架,它整合了Java的事件处理机制和…

Web(八)

XML概念&#xff1a;Extensible Markup Language 可扩展标记语言可扩展&#xff1a;标签都是自定义的。 <user> <student>功能* 存储数据1. 配置文件2. 在网络中传输xml与html的区别1. xml标签都是自定义的&#xff0c;html标签是预定义。2. xml的语法严格&#xf…

使用 npm 包

小程序对 npm 的支持与限制 目前&#xff0c;小程序中已经支持使用npm 安装第三方包&#xff0c;从而来提高小程序的开发效率。但是&#xff0c;在小程序中使用npm包有如下3个限制: ① 不支持 依赖于Node.js内置库 的包 ② 不支持 依赖于浏览器内置对象 的包 ③不支持 依赖于C插…

代码签名证书是如何进行验证工作的

代码签名证书是通过对代码的数字签名来标识软件来源以及软件开发者的真实身份&#xff0c;保证代码在签名之后不被恶意篡改。使用户在下载已经签名的代码时&#xff0c;能够有效的验证该代码的可信度&#xff1b;同时证书又分为个人型&#xff08;iv&#xff09;、企业型&#…

进程大杂烩

1、fork函数的使用 使用fork()函数创建一个进程 pid_t fork(void) fork函数调用成功&#xff0c;返回两次 返回为0&#xff0c; 代表当前进程是子进程 返回为正数&#xff0c;代表当前进程为父进程 fork()函数运行后会创建一个进程&#xff0c;加上开始的进程一共有两个进程&am…

第一天总结 之 用户管理界面的实现 之 模糊查询和分页操作

第一天总结 之 用户管理界面的实现 之 模糊查询和分页操作 1、明确页面的跳转 当登录操作执行时 如果正确 跳转到 UserFuzzySelectServlet 即用户模糊查询的select 注&#xff1a;因为第一次写项目 对于很多操作都不熟悉 很多前期操作没 有 按着 见名之意 …

迎兔年 贺新春 | vLive虚拟直播新年场景上线!

为了带来更为舒适的用户体验给用户提供更好的线上活动品质vLive虚拟直播2.3.1版本进行了优化升级还有多个新春场景上新全新升级的vLive又增添了哪些亮点一起来快速了解一下吧场景上新&#xff1a;新春活动更出彩农历新春降至如何让拜年视频更出众&#xff1f;如何让新年直播更精…

【C++】为什么C++会支持函数重载

文章目录 函数重载 1.概念 2.支持函数重载的原理 2.1准备知识 2.2原理 函数重载 1.概念 在C语言中&#xff0c;是不允许同名函数存在的。但是在一个作用域种&#xff0c;比如加法函数&#xff0c;想要实现各种类型的数据相加&#xff0c;要定义多个函数&#xff0c;但是…