为什么使用 JOIN 子句而不是 WHERE 条件?

2023-11-22

我针对 Oracle 数据库进行开发。当我需要手动编写时(不使用像 hibernate 这样的 ORM),我使用 WHERE 条件而不是 JOIN。

例如(这只是为了说明风格):

Select *
from customers c, invoices i, shipment_info si
where c.customer_id = i.customer_id
    and i.amount > 999.99 
    and i.invoice_id = si.invoice_id(+)  -- added to show a replacement for a join
order by i.amount, c.name

我从一位老 Oracle DBA 那里学到了这种风格。我后来了解到这不是标准的 SQL 语法。除了非标准和数据库可移植性差得多之外,使用这种格式还有其他影响吗?


我不喜欢这种风格,因为它让我更难确定哪种风格WHERE子句用于模拟JOINs哪些是用于实际过滤器的,我不喜欢那些使确定程序员的原始意图变得不必要的困难的代码。

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

为什么使用 JOIN 子句而不是 WHERE 条件? 的相关文章

随机推荐

  • 我在 Windows 窗体中的跨线程调用出了什么问题?

    我在使用 Windows 窗体应用程序时遇到问题 表单必须从另一个线程显示 所以在表单类中 我有以下代码 private delegate void DisplayDialogCallback public void DisplayDial
  • 如何动态调整 UITableView 高度?

    在我的应用程序中 我想在处于编辑模式时与非编辑模式时调整表格视图的高度 以便为表格视图下方的编辑控件腾出空间 这应该怎么做呢 我发现当另一个视图中有浮动表时 操作 bounds 属性可能会导致一些意外的行为 有时 当增加高度时 表格会向上扩
  • 带有字符串数组参数的 PowerShell 脚本的计划任务

    我创建了一个可以从 Management Shell 完美运行的 PowerShell 脚本 我正在尝试将其设置为在 Windows Server 2008 R2 中的计划任务中工作 但不确定如何传递字符串数组参数的参数 这是我的脚本的相关
  • 通过多路径刷图绘制 d3.js Focus+Context 时遇到问题

    我已经研究了几周了 似乎无法弄清楚如何绘制具有多个路径的下面的图表 通过刷图聚焦 上下文 我尝试创建一个 jsfiddle 但无法复制我得到的屏幕 此时 我所拥有的与原始图表类似 只是只有一条路径而不是区域 并且刷牙有效 基本上尝试将焦点图
  • 确定德州扑克牌局获胜者的算法

    好的 我正在为我的高级项目制作德州扑克人工智能 我已经创建了图形用户界面和投注 交易程序 但我已经达到了需要确定谁赢了手的部分 并且我不知道解决此问题的最佳方法 顺便说一句 我正在使用 python ATM 我有 2 个列表 一个用于 7
  • 如何使用命令行从私有 github 存储库下载单个原始文件?

    在 CI 服务器上 我想获取我们在 Github 上维护的配置文件 以便可以在多个作业之间共享 我试图通过curl获取这个文件 但是这些方法都失败了 我得到了404 As advised by the oAuth docs curl H A
  • 在启用加密文件系统的情况下从 C# 创建新目录

    有人在启用加密文件系统的情况下从 C 创建了新目录吗 此外 任何有关通过安装执行此操作的信息也会很有帮助 创建加密目录需要两个步骤 使用 Directory CreateDirectory 创建它 然后使用 Win32 函数 Encrypt
  • 我可以在 SQLAlchemy 中创建临时表而不附加到 Table._prefixes 吗?

    我想在 SQLAlchemy 中创建一个临时表 我可以建立一个CREATE TABLE声明与TEMPORARY通过调用子句table prefixes append TEMPORARY 反对Table对象 但这不如table select
  • 如何使用 JavaScript 设置 Chrome 扩展的文件下载位置?

    您好 我正在使用 Chrome 扩展程序下载选定的链接 但我无法设置下载位置 所有的url都下载到chrome的默认位置 我知道出于安全原因我们不能这样做 我们可以在 Chrome 扩展弹出窗口中提示目录选择器对话框吗 用户可以从这里选择下
  • “将 varchar 值‘NULL’转换为数据类型 int 时转换失败”

    当我将记录插入长表时 出现错误 将 varchar 值 NULL 转换为数据类型 int 时转换失败 如何确定哪一列出现错误 该表有很多字段和数百万条记录 当我尝试将 NULL 字符串插入整数列中的某处时 每次迭代都需要 10 分钟才能完成
  • django、python 和链接加密

    我需要安排某种加密来生成用户特定的链接 用户将单击此链接 在其他视图中 带有加密字符串的相关链接将被解密并返回结果 为此 我需要某种加密函数 它消耗一个数字 或字符串 它是绑定到用户帐户的所选项目的主键 还消耗某种种子并生成将被解密的加密代
  • 如何使用 JMESPath 将两个数组(“keys”和“values”)组合成一个对象?

    我有一个包含两个数组的 JSON 对象 一个keys数组和一values数组 两者长度相同 使用 jmespath 我想使用以下值构造一个新对象keys数组作为键和值values数组作为值 例如array combine in PHP 例如
  • 解析 html 时为什么有时需要 item.text 而其他则需要 item.text_content()

    还在学习lxml 我发现有时无法使用 item text 从树中获取项目的文本 如果我使用 item text content 我就可以开始了 我还不确定我明白为什么 任何提示将不胜感激 好吧 我不确定如何在不让您处理文件的情况下提供示例
  • Swagger错误Springboot无法解析名称为“forward:/swagger-ui/index.html”的视图

    Springboot 2 5 13 swagger2 实现 io springfox springfox boot starter 3 0 0 实现 io springfox springfox swagger ui 3 0 0 运行时错误
  • ARC 下的 stringWithFormat 与 initWithFormat

    stringWithFormat 是一个类方法NSString 并返回一个自动释放的字符串 initWithFormat 是一个实例方法 在 ARC 之前 程序员必须负责返回对象的内存管理 如果我们打开ARC 这两种方法有什么区别 With
  • 如何使用 PIL 从图像中剪切自定义形状?

    我想截一张图 比如说 使用另一张具有透明背景的图片 如下所示 并得到如下结果 如何使用 Python PIL Pillow 实现此目的 或者任何其他库 但它必须是Python 的 我们打电话吧source png到第一张图像 并且mask
  • EF Core 3,优化大量 Include/ThenInclude

    我有一个这样的查询 return await ctx Activities Include a gt a Attributes Include a gt a Roles Include a gt a Bookmarks Include a
  • 如何让 Grunt 等待一个任务完成后再运行另一个任务?

    这是我的咕噜文件和output 正如您在输出中看到的 存在一些与异步任务相关的问题 imagemin被叫到 下一个就直接出现了 这使得它的输出出现在任务的最后 相当混乱 build 这是一个自定义任务 is using var done t
  • Electron 中的 WebRTC 屏幕共享

    我们有一个网络应用程序 我通过在 browserWindow 中加载 URL 来构建电子应用程序 但是当我尝试共享屏幕时 它会弹出一个窗口 提示请安装 janus webRTC 屏幕共享插件并重新启动浏览器 请帮忙 您需要在电子中实现自己的
  • 为什么使用 JOIN 子句而不是 WHERE 条件?

    我针对 Oracle 数据库进行开发 当我需要手动编写时 不使用像 hibernate 这样的 ORM 我使用 WHERE 条件而不是 JOIN 例如 这只是为了说明风格 Select from customers c invoices i