子查询连接和where中的可见性差异

2024-03-07

我在简单连接时遇到了问题:

SELECT * 
FROM worker wo
WHERE EXISTS (
    SELECT wp.id_working_place
    FROM working_place wp 
    JOIN working_place_worker wpw ON ( wp.id_working_place = wpw.id_working_place
        AND wpw.id_worker = wo.id_worker)
)

我遇到的错误是ORA-00904: "WO"."ID_WORKER": not valid identifier.

然后我决定将表的并集从join条款至where clause:

SELECT * 
FROM worker wo
WHERE EXISTS (
    SELECT wp.id_working_place
    FROM working_place wp 
    JOIN working_place_worker wpw ON ( wp.id_working_place = wpw.id_working_place)
    WHERE wpw.id_worker = wo.id_worker
)

最后一个查询works完美的。

为什么不可能在join?该表应该像在中一样可见where条款。我错过了什么吗?


In

FROM working_place wp 
JOIN working_place_worker wpw ON ... 
WHERE ...

the ON条款指的是only到参与连接的两个表,即wp and wpw。外部查询中的名称对其不可见。

The WHERE子句(及其表弟HAVING是外部查询与子查询关联的方式。来自外部查询的名称are对它可见。

为了方便大家记住,

  • ON 是关于 JOIN,两个表如何关联形成一行(或多行)
  • WHERE 是关于选择标准,行必须通过的测试

虽然 SQL 解析器将在 ON 子句中接受文字(不是列名),但它会在对联接外部的列的引用处绘制线条。您可以将此视为防止错误的恩惠。

就你而言,wo表不属于JOIN,并被拒绝。它is整个查询的一部分,并且被识别WHERE.

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

子查询连接和where中的可见性差异 的相关文章

  • 猫鼬查找并删除

    我正在尝试删除满足查询的多个文档 但是 我需要这些文档的数据将它们存储在单独的集合中以实现撤消功能 我让它工作的唯一方法是使用多个查询 Data find query exec function err data Data remove q
  • Informix:带有输出参数的程序?

    我搜索了很多 但找不到任何东西 我只是想问是否有任何方法可以创建和调用过程 Informix 没有参数 我知道如何返回一个或多个值 对于过程和函数 但这不是我想要的 如果 Informix 不允许输出参数 那就真的很奇怪了 提前致谢 EDI
  • 查找具有唯一两列组合的所有行

    我有这张桌子messages sender id recipient id 1 2 1 3 1 3 2 1 3 1 2 3 我希望选择这样的行 Either sender id or receiver id current user id
  • Oracle 事务在 C++ 和 Java 之间的传播

    我们有一个现有的 C 应用程序 我们将逐步将其替换为新的基于 Java 的系统 在我们用 Java 完全重新实现所有内容之前 我们期望 C 和 Java 必须相互通信 RMI SOAP 消息传递等 我们尚未决定 现在我的经理认为我们需要 J
  • 如何在 Pro*C 查询中指定变量表达式列表?

    我尝试优化的 Pro C 查询出现问题 解释一下 我们的应用程序在一个巨大的数据库中搜索行 这些行存在于多种语言中 旧代码为数组中的每种语言选择一行 现在 由于这些查询是我们应用程序中最耗时的部分 因此我只想进行一个直接写入数组的查询 语言
  • Oracle Developer Tools for Visual Studio 2019 无法正确安装

    在 VS 2019 中 ODT 使用扩展名安装 而不是像以前的版本那样作为安装文件安装 因此 从 VS 2017 升级的 EF 6 使用的 MVC 项目 edmx 文件在扩展安装后不显示数据库图表 空白黑页 编辑 xml 选项等 仅此而已
  • 为什么我的查询在参数化后会中断?

    我有 2 张桌子 Sales and Product Sales可以将产品存储为Idn or Name 传统设计 和Type列指定实际type与之相关 Product等是连接的子集表into这个表来获取真实的数据 在这个例子中 Produc
  • 如何从oracle存储过程中提取out变量?

    我有存储过程 其中有很多输出变量 所以我这样调用存储过程 export const infoHR3 async gt try const sql Declare ln order qty NUMBER ln in proc qty hr N
  • SQL 语法检查器和验证器? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有类似 SQL 的 lint 语法检查器和验证器 之类的东西 有一个项目 SQLLint 检测 S
  • 为什么 SQL Server 不推荐使用 SET ANSI_PADDING OFF?

    根据 MSDN BOL 在线书籍 SET ANSI PADDING http msdn microsoft com en us library ms187403 aspx 在 Microsoft SQL Server 的未来版本中 ANSI
  • 转置和聚合 Oracle 列数据

    我有以下数据 Base End RMSA Item 1 RMSA Item 2 RMSA Item 3 RMSB Item 1 RMSB Item 2 RMSC Item 4 我想将其转换为以下格式 Key Products RMSA RM
  • 如何在 SQL 中进行广度优先搜索?

    给定一棵存储为关系的树 Parent Child 1 2 1 3 3 4 3 5 2 6 7 8 7 9 如何获取给定节点的所有后代 例如 对于 1
  • 使用sqlbulkcopy之前如何创建表

    我有一个 DBF 文件 我正在尝试导入该文件 然后将其写入 SQL 表 我遇到的问题是 如果我使用 SqlBulkCopy 它需要我提前创建表 但在我的场景中这是不可能的 因为 dbf 文件不断变化 到目前为止 这是我的代码 public
  • ADO.NET 池连接无法重用

    我正在开发一个 ASP NET MVC 应用程序 该应用程序使用 EF 6 x 来处理我的 Azure SDL 数据库 最近 随着负载的增加 应用程序开始进入无法再与 SQL 服务器通信的状态 我可以看到有 100 个到我的数据库的活动连接
  • 是否可以更新 amazon dynamodb 中的哈希键?

    我想更新 amazon dynamodb 表中的哈希键值 我在同一张表中也有一个范围键 是否有可能做到这一点 您无法更新哈希键值 您必须删除并重新创建该项目 这是相关的aws文档http docs aws amazon com amazon
  • 金融 - 计算到期收益率

    我读了this https stackoverflow com questions 1173555 open source financial library specifically yield to maturity发布关于 net 库
  • sql查询中case语句中的布尔值

    我在选择查询中使用 case 语句 类似这样 Select col1 col2 isActive case when col3 abc then 1 else 0 end col4 from
  • MSSQL:如何使用代码编写存储过程创建脚本?

    我正在尝试使用一个数据库中存在但另一个数据库中不存在的 information schema routines 查询存储过程定义列表 SELECT t1 Routine Definition FROM server1 MyDatabase
  • 选择每组最新的项目[重复]

    这个问题在这里已经有答案了 可能的重复 检索每组中的最后一条记录 https stackoverflow com questions 1313120 retrieving the last record in each group 我有 2
  • 我想从 Crystal Report .rpt 文件中提取 SQL 查询,有办法做到这一点吗?

    我想从 Crystal Report rpt 文件中提取 SQL 查询 有办法做到这一点吗 我没有任何 Crystal Reports 产品 只有 rpt 文件 下面是一个 Net 代码示例 它从给定目录中的所有 Crystal Repor

随机推荐

  • JSF:为支持 bean 中的属性创建别名

    我指的是 EL 中相当深的对象层次结构和相当神秘的名称 如下所示 myBean configBaseStack excludeMethodFromAccounting method TimeoutBehaviorEnabled 我想通过别名
  • 如何在 SharedPreferences 中存储 ArrayList> ?

    我希望在 SharedPreferences 中存储一个包含 Hashmap 的 ArrayList 我怎样才能做到这一点 您可以将集合转换为 json 并将其存储在共享首选项中 每当您需要获取数据时 只需获取字符串并将 JSON 转换回您
  • 哈希表。命名历史。为什么不用哈希表呢?

    we know ArrayList LinkedList TreeMap 以及其他 以及所有名称均采用 CamelCase 格式 但为什么Hashtable not HashTable 这是一个无原则的问题 只是想知道 Hashtable是
  • 当前枚举命名空间中的全局变量的首选方法是什么?

    我曾经为此查看 G 的源代码 但最近 Intersystems 已停止分发 INT 代码 我想理论上我可以在循环中使用 eXecute 语句来检查每个合法全局名称上的 D 但这是愚蠢且不合理的慢 那么目前正确的做法是什么 您始终可以在中使用
  • 如何从 Visual Studio 文件搜索中排除 Designer.cs

    在 Visual Studio 2005 8 中进行搜索时 是否有办法排除特定类型的 cs 文件 Example 在重构场景中 我可能会搜索以识别代码中的字符串文字 以便我可以将它们重构为常量或类似内容 但是 designer cs 文件充
  • 我可以将 WidgetKit 扩展添加到目标 iOS < 14 的应用程序中吗?

    我想向我的 iOS 应用程序添加一个 WidgetKit 小部件 应用程序本身应保持 14 的设备上可用 但应用程序也应在所有其他设备上运行 这可能吗 是的 您可以 因为我在 iOS13 Xcode 项目上开发小部件 您可以在运行 iOS1
  • Pandas - 如何将样式数据框保存到图像

    我已经设计了数据帧输出的样式 并让它在 Jupyter Notebook 中显示我想要的方式 但我遇到问题 找不到一种将其保存为图像的好方法 我努力了https pypi org project dataframe image https
  • 如何对子目录内的服务进行 GRPC 调用? (在.Net框架中)

    我正在尝试连接到 NetFramework 4 5 Windows 应用程序中的 gRPC 服务 我目前正在使用元包 nuget Grpc 我知道它现在仅处于维护模式 我需要访问不在主机 端口位置但有子路径 子目录的服务 我的服务位于这里
  • 如何知道设备是左横向还是右横向?

    我的应用程序有一个浮动搜索视图 https github com arimorty floatingsearchview占据屏幕的全宽 当方向为横向时 它会位于导航栏后面 因此我想为其添加一些边距 问题是 当我旋转左横向 右侧导航栏 时 浮
  • SQL Server 到 MySQL 数据传输

    我正在尝试将批量数据从 SQL Server 数据库恒定且连续地传输到 MYSQL 数据库 我想使用 SQL Server 的 SSMS 复制 但这显然仅适用于 SQL Server 到 Oracle 或 IBM DB2 的连接 目前 我们
  • Select2:无法创建长度超过 2 个字符的新选项(标签:true)

    我有一个 Select2 框 启用了标记以添加新的自己的标签 选择现有选项 任何长度 都没有任何问题 但有些代码阻止我添加长度超过 2 个字符的新选项 只是无法添加更多字符 请参阅JSFiddle https jsfiddle net rq
  • 预检响应中的 Access-Control-Allow-Methods 不允许方法 DELETE

    我正在尝试发出 DELETE ajax 请求 但似乎无法使其工作 当我使用 POSTMAN 制作它时 它可以工作 这是我的代码 这是我的请求 使用 jQuery 的 ajax 方法发出 ajax url imageUrl type DELE
  • 生成器表达式和生成器函数之间的区别

    生成器表达式和生成器函数之间有什么区别 性能或其他方面 吗 In 1 def f yield from range 4 In 2 def g return i for i in range 4 In 3 f Out 3
  • 如何在 Netbeans 中打开检查器组?

    我使用的是 netbeans ide 7 1 1 所有组都是开放的 我找不到检查组 我打开了导航器组 打开了文件 调色板 程序和导航器组 我需要检查组 问题在于 NetBeans 7 1 1 已将检查器组重命名为 Navigator 以前
  • 在 cookie 中存储和检索 json 对象

    我尝试将 json 对象存储在 cookie 中 但遇到了一些问题 我可以像这样创建我的对象 product name prodname quantity 4 然后我将这个对象保存在我的 cookie 中 随着更多产品的添加 它是一个购物篮
  • 账户之间的 Coinbase 转账返回“未找到”

    我正在尝试在账户之间转移 BTC 和 BCH 通过查看文档 我发现了以下内容 https developers coinbase com api v2 transfer money Between accounts https develo
  • 部署后无法访问 WCF 服务中的 SVC 文件

    我此刻泪流满面 我还能做些什么来排查和分析问题 我已经部署了 WCF 服务层 但无法访问它 在 SVC 文件上传到的同一物理目录中 我还放置了一个静态 HTML 文件 第一行获取该文件 而第二行则抱怨资源被删除 重命名 不可用等 http
  • OSX 10.7.5:致命错误:找不到“ft2build.h”文件

    我正在尝试安装一个名为 ROOT 的程序 http root cern ch drupal content installing root source http root cern ch drupal content installing
  • Cypress - if then 函数

    我对赛普拉斯有疑问 我的页面上有一个元素并不总是出现 什么时候显示 什么时候不显示 没有任何逻辑 在 Cypress 中 是否有一些 IF THEN 函数或其他函数 如何检查元素是否显示 因此填充它 当您没有看到它时 如何跳过该步骤 我的代
  • 子查询连接和where中的可见性差异

    我在简单连接时遇到了问题 SELECT FROM worker wo WHERE EXISTS SELECT wp id working place FROM working place wp JOIN working place work