何时在 mysql 中使用 Union [关闭]

2024-05-18

对于 Union,您会在什么现实情况下使用它?因为对我来说,对具有不同列用途/含义的两个表中的两个选择查询使用联合是没有意义的。例如:

表人:

id   name    age

1    mark    23
2    shawn   18

表地址:

id   personID   address

1      1        some address
2      2        another random address

根据上表,您会以什么方式或出于任何原因使用联合查询?

EDIT

基本上我的理解是,为了提高效率,在将不同表中的类似信息处理到一张表中时使用 UNION,而不是总是单独查询或使用 JOIN 来处理类似信息。

EDIT

或者当表(DB)的设计没有经过深思熟虑时。因为没有什么可以阻止任何人设计一个不完美的数据库,因为时间限制并且当您不知道表的最终设计的全部范围时。


一个简单的示例是,您出于给定原因想要对非标准化表进行标准化(但不更改原始表)。假设您有一个名为 Loan_Disbursements 的表,具有以下属性:

LoanID, Disbursement_Date, Disbursement_Amount, Refund_Date, Refund_Amount

您想将其标准化为以下内容(我知道,不是最好的名称):

LoanID, Activity_Date, Activity_Amount, Activity_Name

代码看起来像这样:

SELECT LoanID, Disbursement_Date AS Activity_Date, Disbursement_Amount AS Activity_Amount, 'Disbursement' AS Activity_Name
FROM Loan_Disbursements

UNION ALL

SELECT LoanID, Refund_Date AS Activity_Date, Refund_Amount AS Activity_Amount, 'Refund' AS Activity_Name
FROM Loan_Disbursements

当然,还有其他方法可以在一个 SQL 语句中实现相同的目的(例如使用两个派生表)。但是,您还需要评估查询计划以及性能是否存在差异。

顺便说一句,如果您问“在完美的世界中”,这会在哪里使用 - 这实际上就像问“在完美的世界中”,为什么需要备胎。快二十年了,我还没有找到这个完美的世界。但是,这确实是乐趣的一部分。

我希望这有帮助。

Cheers!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

何时在 mysql 中使用 Union [关闭] 的相关文章

  • 是否可以使用“WHERE”子句来选择SQL语句中的所有记录?

    晚上好 我很好奇是否可以在 SQL 语句中创建一个 WHERE 子句来显示所有记录 下面一些解释 随机 SQL 语句 Java JSP示例 正常情况 String SqlStatement SELECT FROM table example
  • PDO fetch() 失败时会抛出异常吗?

    有没有方法PDO语句 fetch http php net manual en pdostatement fetch php如果 PDO 错误报告系统设置为抛出异常 则在失败时抛出异常 例如 如果我设置 PDO ATTR ERRMODE g
  • 在mysql中搜索“SanF”时获取旧金山的记录

    当我搜索 SanF 时获得 San Francisco 记录 SELECT FROM table WHERE col LIKE san Works SELECT FROM table WHERE col LIKE san F Works S
  • 从数据库生成 XML 时出现 PHP 编码错误 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在尝试获取一个简单的 PHP 服
  • 将列的值添加到 LIKE 语句中?

    我有 3 个标签表 标签类别和使用过的标签 我想要获取所有标签的列表以及已使用标签的计数 所使用标签的格式是每个具有标签的文档 ID 的逗号分隔值 我一直在尝试类似的方法 但无法将tags tag 字段的值插入到LIKE 语句中 SELEC
  • 更改Docker容器中的mysql密码

    我如何更改 docker 容器中的 root 密码 因为一旦我停止 mysql 服务 容器就会自动停止 我应该停止 mysql 容器并部署一个新容器吗 您可以使用正在运行的容器更改它docker exec session https doc
  • ejabberd 16.06 + mysql 5.5.50,消息历史记录不保存

    我使用ejabberd 16 06 mysql 5 5 50 消息历史记录没有保存 我的 ejabberd yml MySQL server odbc type mysql odbc server freldo odbc port 3306
  • 如何将 php Web 应用程序转换为桌面应用程序并保留数据库 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我们有一个用 PHP 开发的 Web 应用程序 但大多数客户并没有一直连接到互联网 那么 有没有办法将应用程序转换为桌面应用程序 以便
  • PMA 4.5.2.0 file_exists():open_basedir 限制生效

    从 PPA 在我的 Ubuntu 服务器上安装 phpMyAdmin 后 https launchpad net nijel archive ubuntu phpmyadmin https launchpad net nijel archi
  • SQL Server 查询结果集的大小

    SQL Server 中是否有确定结果集中 Mgmt Studio 查询中返回的数据大小 以 MEGS 为单位 您可以打开客户端统计信息 查询菜单 包括客户端统计信息 它给出执行查询时从服务器返回的字节数
  • 在 PHP 中将十进制/双精度/浮点值与 PDO 绑定的最佳方法是什么?

    看来类常量只涵盖PDO PARAM BOOL PDO PARAM INT and PDO PARAM STR用于绑定 您只是将十进制 浮点 双精度值绑定为字符串还是有更好的方法来处理它们 MySQLi 允许使用 d 类型表示 double
  • #1045 - 用户“root”@“localhost”的访问被拒绝(使用密码:YES)

    这可能看起来多余 但我无法找到正确的解决方案 我无法使用 mysql 控制台登录 mysql 它要求输入密码 但我不知道我实际输入的内容 有办法获取密码或更改密码吗 这就是我的 config inc 的样子 当我尝试打开 phpmyadmi
  • 从数据库 MYSQL 和 Codeigniter 获取信息

    如果你们需要其他信息 上一个问题就在这里 从数据库中获取信息 https stackoverflow com questions 13336744 fetching information from the database 另一个更新 尽
  • 更新plpgsql中触发器函数中的多列

    给出以下架构 create table account type a id SERIAL UNIQUE PRIMARY KEY some column VARCHAR create table account type b id SERIA
  • Oracle:如果表存在

    我正在为 Oracle 数据库编写一些迁移脚本 并希望 Oracle 有类似于 MySQL 的东西IF EXISTS构造 具体来说 每当我想删除 MySQL 中的表时 我都会执行类似的操作 DROP TABLE IF EXISTS tabl
  • 外键引用多个表

    我有4张桌子 A ida name B ida B specific stuff C ida C specific stuff D ida D specific stuff 我希望另一个表 E 可以仅引用 B 或 C 而不是 D 我可以在其
  • 如何使用 PHP 获取列中的所有值?

    我一直在到处寻找这个问题 但仍然找不到解决方案 如何从 mySQL 列中获取所有值并将它们存储在数组中 例如 表名称 客户 列名称 ID 名称 行数 5 我想获取此表中所有 5 个名称的数组 我该如何去做呢 我正在使用 PHP 我试图 SE
  • 如何解决 MySQL innodb 在 TRUNCATE TABLE 上“等待表元数据锁”?

    在 GitLab CI 服务器中运行包含数百个应用程序单元测试的测试套件 运行 10 次测试后 不知怎的 它总是卡在等待 TRUNCATE TABLE 上的表元数据锁上 这是一个拆卸步骤 我知道SHOW ENGINE INNODB STAT
  • 让 Prometheus 发送 SQL 查询

    我正在尝试使用普罗米修斯 https prometheus io 监视我的 MySQL 数据库 但似乎找不到添加 SQL 查询的区域 例如 我想运行一个返回值的 SQL 查询 然后将该值添加到图表中 发送警报 有没有办法让 Promethe
  • 从一个sql服务器选择到另一个sql服务器?

    我想将一台服务器 Data Old S1 中的一个表 T1 在 DB1 中 中的数据选择到另一台服务器 Data Latest S2 中的另一个表 T2 在 DB2 中 中的数据 我怎样才能做到这一点 请注意服务器的命名方式 查询也应该考虑

随机推荐

  • Flutter:将字符串转换为 Map

    我正在使用 SQFlite 在本地存储数据 我有一个表 其中有一个名为 json 的字段 该字段的类型为 TEXT 并存储转换为字符串的 json 例如 name Eduardo Age 23 性别男 到目前为止 一切正常 但随后我需要从数
  • 如何使用 xpath 检查某个对象在网页中是否可见?

    我正在 R 中使用 RSelenium 包来进行网络抓取 有时加载网页后 需要检查某个对象在网页中是否可见 例如 library RSelenium open a browser RSelenium startServer remDr lt
  • 如何在golang中创建一个充满“000000...”数据的10MB文件?

    我打算在日志或磁盘队列等系统中使用 fdatasync 首先是在 ext4 等文件系统中创建一个带有 000000 的 10MB 文件 但我不知道如何正确地做到这一点 jnml fsc r630 src tmp SO 16797380 ls
  • 如何使用@PreviewParameter注解?

    我正在尝试预览一个以一个字符串参数作为输入的可组合项 我不知道如何 PreviewParameter应该使用注释 这是我尝试过的 class DogProvider PreviewParameterProvider
  • 服务器上的 Rails 会话

    我想让一些 Rails 应用程序在不同的服务器上共享同一个会话 我可以在同一服务器内完成此操作 但不知道是否可以在不同服务器上共享 有人已经做过或者知道怎么做吗 Thanks Use the 数据库会话存储 https github com
  • 在 iOS 上使用 Web 服务的最佳方式?

    我想构建一个 iOS 应用程序 让您登录到网络服务 之后 应用程序将 当用户选择时 通过 https 发送登录名 密码以及请求的变量 例如 在请求 新闻更新 后 它将收到 XML 格式的请求信息 类似于
  • 从 df 中提取具有两列的重叠行对

    我想找出这两个表之间哪些对重叠 gt dput data1 structure list Name x c MDH1 MDH1 IDH2 IDH2 IDH2 IDH2 IDH2 IDH2 IDH2 SCOALB SCOALB CSY4 CS
  • 使用无符号整数时循环条件停止于 0?

    我有一个必须从 N 到 0 含 的循环 我的i变量的类型size t通常是无符号的 我目前正在使用以下代码 for size t i N i size t 1 i 那是对的吗 有没有更好的方法来处理这种情况 Thanks Vincent 是
  • Play:获取默认数据库的连接

    我想获得与我在写入时定义的数据库实例的连接应用程序配置文件 db default driver com mysql jdbc Driver url jdbc mysql localhost test username password Th
  • 如何在 Django QuerySet 中将 DateField() + TimeField() 转换为本地时间?

    我的模型为这些字段 date models DateField 开始时间 models TimeField 结束时间 models TimeField 我想用以下方式注释查询集start datetime and end datetime
  • ExpandableListView / 滑动菜单中的向下钻取

    这里是当前用户界面对于侧面菜单 这是一个应用程序的图像DRILL DOWN or Expandable ListView Menu 如何为第一张图片创建相同的菜单 UI 看起来您已经发布了另一个类似的问题 其中我提供了几个指向教程的链接以及
  • 将html表格保存到excel中[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我必须编写一个程序 定期读取网页并将
  • 需要 SQL 查询澄清[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一个由以下列组成的表 billid patientid doctorid fees 如何显示治疗多名患者的医生 尝试了以下代码并得到了
  • Jquery 移动应用程序的奇怪行为

    我创建了一个应用程序 其中包含多个主页按钮 单击其中一个按钮 我的应用程序将重定向到某个视图 其中包含 JQM 表单 JQM 日历 文本字段 按钮和数据库等 我的问题是 当我在 Android 设备上测试我的应用程序时 即使我没有使用任何图
  • 在 digraph_utils:is_acirclic/1 返回 false 后查找循环或循环

    我怎样才能 有效地 在Erlang有向图中找到循环或循环digraph utils is acyclic 1返回假 EDIT is acyclic is 定义为 https github com erlang otp blob maint
  • 正则表达式:无法找出与单个事件匹配的表达式,并且仅匹配包含特定单词的行

    我正在尝试使用 Sublime Text 作为编辑器清理并合并一些旧的日历文件 x ics 打开文件会得到一个长文件 如下所示 我想删除 即替换为任何内容 文件中在摘要中提及生日的所有条目 VEVENT 并保留所有其他条目 因此我使用正则表
  • C++ 整数溢出和提升[重复]

    这个问题在这里已经有答案了 可能的重复 当二元运算符两侧的符号不同时 提升规则如何工作 https stackoverflow com questions 6770258 how do promotion rules work when t
  • logback的“谨慎模式”是如何实现的?

    The 审慎模式 http logback qos ch manual appenders html prudentlogback 中的序列化所有 JVM 之间的 IO 操作 写入同一文件 可能运行在不同的主机上 在其他日志记录框架中 如果
  • 我可以从命令行或 MS-Dos 启用/禁用网络连接吗?

    我想从 Windows 8 中的命令行启用 禁用网络连接 netsh interface set interface Local Area Connection DISABLED 要启用该接口 您需要运行 netsh interface s
  • 何时在 mysql 中使用 Union [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 对于 Union 您会在什么现实情况下使用它 因为对我来说 对具有不同列用途 含义的两个表中的两个选择查询使用联合是没有意义的 例如