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

数据库多表查询概述——三种实现方式

多表查询

将多个表中的数据结合起来,进行查询,根据不同的条件,以及多种相关联的字段判定,来得到相应的数据信息

笛卡尔积

select *from People,Department
-- 我们得到的是People和Department两个表的列数据乘积 如3*4=12条数据

笛卡尔积很少使用,作为一个多表查询的开端

简单多表查询

多表查询前文已经涉及到了一部分,下面我们直接进行演示,还是使用People,[Rank],Department三个表,来进行数据查询,其中会演示多种查询的方式

-- 1.比如说,我们想要查询到People表中的员工信息,并显示部门名称
-- 我们知道的是People中的DepartmentId是Department的外键,所以我们只需要两个id相等即可
-- 用前文所学的内容,也可以实现多表查询
select *from People,Department where People.DepartmentId=Department.DepartmentId
-- 用.来表示字段属于哪一个表
-- 2.查询员工信息,显示职级
select *from People,[Rank] where People.RankId=[Rank].RankId
-- 3.查询员工信息,显示职级和部门
select *from People,Department,[Rank] where People.DepartmentId=Department.DepartmentId and People.RankId=[Rank].RankId

内连接

-- 对于上述的内容,实际上是直接对于多个表的数据展开,然后搜索符合where条件的信息,进行筛选,最后得到符合要求的表格数据
-- 接下来我们先认识 内链接,关键字为:inner join
-- 内连接是面向一个表
select *from People inner join Department on People.DepartmentId=Department.DepartmentId
-- 多个表 
select *from People inner join Department on People.DepartmentId=Department.DepartmentId inner join [Rank] on People.RankId=[Rank].RankId

`简单多表查询和内连接共同特点:不符合主外键关系的数据不会显示出来

相关文章:

  • 【学习笔记】关于建模时需要调整的变量
  • 使用Python生成一束玫瑰花
  • Python采集安居客租房信息
  • CAD2023 2024 2025以上版本出现无法运行 AutoCAD,原因可能如下1) 此版本的 AutoCAD 安装不正确
  • 第十五届“北斗杯”全国青少年空天科技体验与创新大赛安徽赛区阜阳市解读会议
  • FreeRTOS_互斥量_学习笔记
  • php 连接sqlserver步骤
  • 无网环境禁止 WPS 提示登录,且基本功能按钮可用
  • HQL面试题练习 —— 品牌营销活动天数
  • 运维的发展前景,会被AI取代吗?
  • python的requests爬虫模块使用代理ip方法---集合
  • python 庆余年2收视率数据分析与可视化
  • VUE3+TS+elementplus创建table,纯前端的table
  • Leaflet【二】图层绘制——UI图层【点线面】 矢量图层【img、svg】
  • Java NIO 基础
  • 【Linux系统编程】快速查找errno错误码信息
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • ➹使用webpack配置多页面应用(MPA)
  • Angular 响应式表单之下拉框
  • flask接收请求并推入栈
  • IndexedDB
  • Js基础知识(四) - js运行原理与机制
  • Linux下的乱码问题
  • 分布式事物理论与实践
  • 基于Android乐音识别(2)
  • 力扣(LeetCode)357
  • 聊聊redis的数据结构的应用
  • 判断客户端类型,Android,iOS,PC
  • 使用SAX解析XML
  • 双管齐下,VMware的容器新战略
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 在Unity中实现一个简单的消息管理器
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • ​2020 年大前端技术趋势解读
  • # centos7下FFmpeg环境部署记录
  • # linux 中使用 visudo 命令,怎么保存退出?
  • #、%和$符号在OGNL表达式中经常出现
  • #ubuntu# #git# repository git config --global --add safe.directory
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (function(){})()的分步解析
  • (Java数据结构)ArrayList
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转)德国人的记事本
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .NET CF命令行调试器MDbg入门(一)
  • .NET Core 2.1路线图
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .NET Micro Framework初体验
  • .NET 解决重复提交问题
  • .NET中 MVC 工厂模式浅析