SQL多表查询

2023-11-16

多表查询

基本sql语句

SELECT <目标字段> FROM <数据库表> WHERE <查询条件> GROUP BY <分组依据> ORDER BY <排列依据>

多表查询

  1. 内连接返回满足连接条件的数据

格式:SELECT <目标字段> FROM <INNER JOIN+表名+ON+连接条件> WHERE <查询条件>

注意:理清表与表之间的关系,从哪些表中查出哪些数据,表与表之间的连接条件是什么

例一:双表查询

image-20220709223637063

例二:多表查询

a  sys_user       user_name => user_id dept_id
b  sys_user_role  user_id   => role_id
c  sys_role       role_id   => role_name
d  sys_role_dept  role_id   => dept_id
e  sys_dept       dept_id   => dept_name parent_id dept_name
f  sys_dept       parent_id => dept_name
SELECT 
	a.user_name,
	a.user_id,
	a.dept_id,
	b.role_id,
	c.role_name,
	e.dept_name,
	f.dept_name
FROM
	sys_user AS a
	INNER JOIN  sys_user_role AS b  ON b.user_id = a.user_id
    INNER JOIN  sys_role AS c       ON c.role_id = b.role_id
    INNER JOIN  sys_dept AS e       ON e.dept_id = a.dept_id
	INNER JOIN  sys_dept AS f       ON f.dept_id = e.parent_id
WHERE
	a.user_name = 'zjzsqxyf01'
    
  1. 外连接:外连接不只列出与连接条件相匹配的行,而是列出左表(左外连接时)、右表(右外连接时)或两个表(全外连接时)中所有符合搜索条件的数据行

    (1)左连接:返回左表中的所有数据

    格式:SELECT <目标字段> FROM <LEFT JOIN+表名+ON+连接条件> WHERE <查询条件>

    image-20220709223906735

    (2)右连接:返回右表中的所有数据

    格式:SELECT <目标字段> FROM <RIGHT JOIN+表名+ON+连接条件> WHERE <查询条件>

    image-20220709223848361

    (3)全连接:在等值连接的基础上将左表和右表的未匹配数据都加上

    格式:SELECT <目标字段> FROM <FULL JOIN+表名+ON+连接条件> WHERE <查询条件>

image-20220709225050650

  1. 自然连接:以两个表具有相同的字段的所有列为基础,返回两个表中满足查询条件的数据
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL多表查询 的相关文章

  • 使用 to_char 格式化间隔

    以下 SQL 命令 select TO CHAR NVL arg1 arg2 TO DSINTERVAL 0 00 00 00 from table1 生成格式为 000000000 00 03 01 954000 的结果 是否可以在 to
  • PostgreSQL Age() 函数:在不同月份登陆时出现不同/意外的结果

    今天 我在 PostgreSQL 9 6 中运行此查询时遇到了无法解释的结果 SELECT age 2018 06 30 2018 05 19 AS one age 2018 07 01 2018 05 20 AS two 两列的预期结果
  • 通过货币换算获取每种产品类型的最低价格

    我想选择每种产品类型中最便宜的 包括运费 价格转换为当地货币 最便宜 产品 价格 产品 运费 seller to aud 我的数据库有如下表 PRODUCTS SELLERS id type id seller id price shipp
  • SqlCommand 参数与 String.Format [重复]

    这个问题在这里已经有答案了 我一直在互联网上搜索 但似乎找不到任何可以解释我的问题的内容 可能是我没有使用正确的搜索字符串 所以我在这里发帖希望有人可以帮助我有了这个 我的程序是使用Visual Studio 2010用C 编写的 我注意到
  • 表名搜索

    我使用以下命令在特定数据库的存储过程中搜索字符串 USE DBname SELECT Name FROM sys procedures WHERE OBJECT DEFINITION OBJECT ID LIKE xxx 修改上面的内容是否
  • 使用 WHILE 创建虚拟数据

    我尝试使用 a 在表中插入一些虚拟数据WHILE 但它运行得非常非常慢 我在想也许我写的代码不正确 你能看一下并确认一下吗 Insert dummy data DECLARE i int Content int SET i 5001 WHI
  • 如何在 SELECT 子句中编写带点(“.”)的列名?

    我正在尝试使用 编写列名称 没有成功 sample SELECT PrmTable Value MAX Value FROM TempTable or SELECT MAX Value AS PrmTable Value FROM Temp
  • 将两行中相似的列数据合并到一行中

    我的查询结果具有以下特征 LIDCode Total Domain Region VSE Version AB02 15 GLOBAL CANLA 0 6943 AB02 5925 CENTRE STREET SW 31 GLOBAL CA
  • Oracle 中的 SQL 调优 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有任何文章 链接可以让我找到 SQL 调优 Oracle 的示例 如果能用例子来解释那就太好了 我需
  • 如何有效地从 DB2 表中删除所有行

    我有一个大约有 50 万行的表 我想删除所有行 如果我做简单的delete from tbl 事务日志已满 我不关心这种情况下的事务 无论如何我都不想回滚 我可以删除许多事务中的行 但是有更好的方法吗 如何有效地从 DB2 中的表中删除所有
  • 使用 Spark DataFrame 获取组后所有组的 TopN

    我有一个 Spark SQL DataFrame user1 item1 rating1 user1 item2 rating2 user1 item3 rating3 user2 item1 rating4 如何按用户分组然后返回TopN
  • 连接两个表的查询的 SQL Server“FOR XML”输出

    我是 SQL Server 中 FOR XML 功能的新手 我正在使用 SQL Server 2012 我有两个表 Word 和 Word Expansion 样本数据 表 字 WordOID Word 1 PIPE 2 WIRE 表 Wo
  • 如何使用 MySQL 的 LOAD DATA LOCAL INFILE 在导入 CSV 时将字符串日期更改为 MySQL 日期格式

    我正在使用 MySQL 的 LOAD DATA LOCAL INFILE SQL 语句将数据从 CSV 文件加载到现有数据库表中 下面是一个 SQL 语句示例 LOAD DATA LOCAL INFILE file csv INTO TAB
  • 复选框上的数据绑定

    我目前正在将数据从 SQL 数据库之一提取到我的应用程序中 我可以让它适用于我的文本框和其他项目 但是 我似乎无法让它适用于复选框 这是我正在使用的代码 DataTable dt new DataTable dt using SqlConn
  • 如何使用PostGIS将多边形数据转换为线段

    我在 PostgreSQL PostGIS 中有一个多边形数据表 现在我需要将此多边形数据转换为其相应的线段 谁能告诉我如何使用 PostGIS 查询进行转换 提前致谢 一般来说 将多边形转换为线可能并不简单 因为没有一对一的映射 http
  • SQL 删除表并重新创建并保留数据

    在我们最初的设计中 我们搞砸了表中的外键约束 现在表已充满数据 我们无法在不删除表中所有记录的情况下更改它 我能想到的唯一解决方案是创建一个备份表并将所有记录放在那里 然后删除所有记录 更改表并开始将它们添加回来 还有其他 更好 的想法吗
  • 使用 JSON 参数的 Postgres 批量 INSERT 函数

    这是一个plpgsqlpostgres 的函数9 6 它试图INSERT一行 如果插入没有失败 由于违反键约束 那么它会运行更多命令 CREATE FUNCTION foo int text text RETURNS void AS BEG
  • 列中差异的数量

    我想检索一列每行中有多少个字母的差异 例如 如果您有一个值 test 而另一行有一个值 testing 则 test 和 testing 之间的差异为 4 个字母 该列的数据值为 4 I have reflected about it an
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 如何在 PostgreSQL 中使用具有多个值的 SQL LIKE 条件?

    有没有更短的方法来查找多个匹配项 SELECT from table WHERE column LIKE AAA OR column LIKE BBB OR column LIKE CCC 这个问题适用于 PostgreSQL 9 1 但如

随机推荐

  • h5py存取简例

    当数据太大 好像是 gt 2G scipy io savemat 会报错 考虑换用 h5py 这种格式 matlab 也可以读 见 4 Code import numpy as np import h5py a np arange 12 r
  • SiamMask 测试程序分析

    之前分析了 DaSiamRPN 的测试代码 侧重于执行细节 到了 SiamMask 似乎主题应该有所升华 故事的明线为跟踪器构成 暗线为训练流图 相比于 DaSiamRPN SiamMask 不仅网络结构是现代化的 系统设计也更具匠心 这便
  • MATLAB——参数根轨迹的绘制

  • C# 接口(Interface)

    简介 接口定义了所有类继承接口时应遵循的语法合同 接口定义了属性 方法和事件 这些都是接口的成员 接口只包含了成员的声明 成员的定义是派生类的责任 接口提供了派生类应遵循的标准结构 接口使得实现接口的类或结构在形式上保持一致 抽象类在某种程
  • 双fifo流水线实现3x1024数组数据按列相加

    Vivado版本 2019 2 MATLAB Modelsim版本 Modelsim SE 64 10 7 实验内容 双fifo流水线实现3x1024数组数据按列相加 FIFO First Input First Output 既先入先出
  • 小程序 云函数中file转base64

    mp4文件转base64 云函数中下载文件 const res await cloud downloadFile fileID fileID const base64 data video mp4 base64 res fileConten
  • 计算机编程语言:解释型语言与编译型语言的理解

    一 计算机编程语言 主要分为3类 高级语言 抽象层次更高的便于记忆和表示的英文代码 汇编语言 抽象层次较高的对应机器硬件的cpu指令集 英文缩的助记 符号代码 机器语言 抽像层次最低的由0 1序列所表示的机器码 计算机底层只能识别0 1 所
  • TIMIT数据集无法打开?sph格式转换为wav

    打开TIMIT数据集发现提示无法打开文件 上网搜索发现文件虽然后缀是WAV 但是其实是sph格式 是无法打开的 需要转换为wav 找到一种python方法转换格式 但是不知道为什么sphfile库下载安装了就是无法引用 然后又找到了一个ma
  • Linux 安装Zookeeper

    Linux 安装Zookeeper 下载 wget https mirrors tuna tsinghua edu cn apache zookeeper zookeeper 3 4 14 解压 tar zxvf zookeeper 3 4
  • qt学习笔记2:信号和槽

    信号和槽 实现点击按钮关闭窗口 按钮 gt 点击 gt 窗口 gt 关闭 connect 信号的发送者 发送的具体信号 信号的接收者 信号的处理 信号的处理就是槽 一个是信号的发送方 一个是信号的接收方 信号槽有一个优点 松散耦合 即发送方
  • Vue 复杂json数据在el-table表格中展示(el-table分割数据)

    文章目录 前言 问题背景 实现复杂json数据在el table表格展示 el table column分割线 el table column高度 前言 在做复杂的动态表单 实现业务动态变动 比如有一条需要动态添加的el form item
  • Day29_10 JavaWeb之编码处理、Jsp及Cookie的使用(记住密码)

    目录 一 编码处理 编码处理的意义 请求编码及响应编码 二 Jsp Jsp的概述 html 转换为jsp 三 Cookie Cookie的概述 Cookie细节 四 记住密码的实现 了解什么是会话跟踪技术 记住密码功能实现的思路 一 编码处
  • Python中安装pandas出现问题总结

    1 安装pandas总报超时 这个方法一般都能解决问题 解决方法 pip install 包名 i http pypi douban com simple trusted host pypi douban com 这个是因为你下载的包不对
  • app 自动化测试 - 多设备并发 -appium+pytest+ 多线程

    1 appium python 实现单设备的 app 自动化测试 启动 appium server 占用端口 4723 电脑与一个设备连接 通过 adb devices 获取已连接的设备 在 python 代码当中 编写启动参数 通过 py
  • tmux内外vim主题theme不一致

    每次在tmux里边用vim都觉得好丑 明明外边设置theme了 但是到里边就识别不了 在 tmux conf里添加set g default terminal screen 256color 依然不行 解决方案 使用tmux 2 打开tmu
  • cdh下spark2-yarn运行sparkstreaming获取kafka数据使用spark-streaming-kafka-0-10_2.11报错解决

    报错问题 20 07 15 17 20 51 INFO utils AppInfoParser Kafka version 0 9 0 kafka 2 0 0 20 07 15 17 20 51 INFO utils AppInfoPars
  • 第二十八章 Unity射线检测

    本章节我们介绍一下射线 射线就是从一个固定点向一个方向发射出一条直线 在发射过程中需要判断该射线有没有与游戏物体发送碰撞 射线既可以用来检测射击游戏中武器指向目标 又可以判断鼠标是否指向游戏物体 射线的创建方式 一般使用代码来实现 接下来
  • 使用 Python 创建使用 for 循环的元组列表

    Python 的关键数据结构是列表和元组 元组元素一旦设置 就无法更改 这称为不可变性 但是列表元素可以在初始化后修改 在处理需要组合在一起的数据时 for 循环用于创建元组列表 列表比元组更具适应性 因为它们能够被修改 本教程演示如何使用
  • GDI+ 文本测量方法

    背景 图形类 Graphics 是 GDI 的核心 它提供绘制图形 图像和文本的各种方法 Graphics 中使用 DrawString 方法在指定位置绘制文本或者在一个指定矩形内绘制文本 通过调用 Graphics 对象的 Measure
  • SQL多表查询

    多表查询 基本sql语句 SELECT lt 目标字段 gt FROM lt 数据库表 gt WHERE lt 查询条件 gt GROUP BY lt 分组依据 gt ORDER BY lt 排列依据 gt 多表查询 内连接 返回满足连接条