假设有两个表:

Table A: A1,A2,A_Other

Table B: B1,B2,B_Other

在以下示例中,是针对固定值检查的条件,例如,=’ABC’或< 45. 我写了一个如下(1)的查询:

Select * from A

Where A1 IN (

Select Distinct B1 from B

Where B2 is something

And A2 is something

);

我真正打算写的是(2):

Select * from A

Where A1 IN (

Select Distinct B1 from B

Where B2 is something

)

And A2 is something;

奇怪的是,两个查询都返回了相同的结果.在查看查询1的解释计划时,看起来就像执行子查询时一样,因为条件A2不适用于子查询,它被推迟用作主查询结果的过滤器.

我通常希望查询1失败,因为子查询本身会失败:

Select Distinct B1 from B

Where B2 is something

And A2 is something; --- ERROR: column "A2" does not exist

但我发现情况并非如此,Postgres将不适用的子查询条件推迟到主查询.

这是标准行为还是Postgres异常?这记录在哪里,这个功能叫做什么?

此外,我发现如果我在表B中添加列A2,则只有查询2按预期工作.在这种情况下,查询2中的引用A2仍将引用A.A2,但查询1中的引用将引用新列B.A2,因为它现在可直接应用于子查询.

判断一个where条件的对错php,sql – IN子查询的WHERE条件影响主查询 – 这是一个功能还是一个错误?...相关推荐

  1. mysql日期条件筛选_【SQL】对于日期DATETIME的条件筛选

    sql查询时间大于某天的数据 如查询时间大于2020/05/14这一天的数据,首先可能想到这样写 select * from STUDENT where TIME>'2020/05/14' 但这 ...

  2. 性能为王:SQL标量子查询的优化案例分析

    本篇整理内容是黄廷忠在"云和恩墨大讲堂"微信分享中的讲解案例,SQL优化及SQL审核,是从源头解决性能问题的根本手段,无论是开发人员还是DBA,都应当持续深入的学习SQL开发技能, ...

  3. 4、判断一个年份是否为闰年。(闰年即满足以下两条件的年份:其一:能被4整除但不能被100整除;其二:能被400带除)

    4.判断一个年份是否为闰年.(闰年即满足以下两条件的年份:其一:能被4整除但不能被100整除:其二:能被400带除) public class Jiejue4 { public static void ...

  4. 编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:

    表1为Penson,表2为Address,如下图所示 要求:编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息: FirstName ...

  5. 写一个“特殊”的查询构造器 - (四、条件查询:复杂条件)

    复杂的条件 在 SQL 的条件查询中,不只有 where.or where 这些基本的子句,还有 where in.where exists.where between 等复杂一些的子句.而且即使是 ...

  6. MyBatis——占位符,转义字符,多元素查询(模糊查询),动态sql(多条件中多查询,多条件中单查询)

    占位符:${},#{} ${}:充当占位符时,无法防止sql注入,纯纯的外面给啥,他就往上放啥 #{}:充当-,可以防止sql注入 实体类: package com.itjh.pojo;public ...

  7. java多条件sql查询_SQL 多条件查询

    网上有不少人提出过类似的问题:"看到有人写了WHERE 1=1这样的SQL,到底是什么意思?".其实使用这种用法的开发人员一般都是在使用动态组装的SQL.让我们想像如下的场景:用户 ...

  8. sql判断整除_关系代数中除法的SQL实现

    关系代数中除法的SQL实现 文章目录 引言 关系代数中的运算主要有选择.投影.连接(或者说乘法,即笛卡尔积).除法,以及集合运算.其中,选择.投影.连接能直接用SQL表达,但除法和大部分集合运算不能. ...

  9. oracle执行计划走索引类型,SQL执行计划问题:where条件是主键(NUMBER类型字段)LIKE  :VAR,为什么执行计划不走索引?...

    SQL执行计划问题:where条件是主键(NUMBER类型字段)LIKE  :VAR,为什么执行计划不走索引? 中文社区 (MOSC) 数据库 (MOSC) 6 Replies Last update ...

最新文章

  1. PyTorch 神经网络
  2. android显示服务器端文件夹,Android上传文件到服务端并显示进度条
  3. 前端学习(2875):原生js模块化+入口模块和子类的编写
  4. P5725 【深基4.习8】求三角形(python3实现)
  5. xpath的基本使用
  6. 《DSP using MATLAB》Problem 6.6
  7. 省市区经纬度地图json获取方法
  8. 好物分享 Kvaser支持CANFD功能的CAN卡都有哪些?
  9. 服务式GIS实践与发展——REST 服务
  10. vue json对象转数组
  11. 修改树莓派默认密码及切换root账号
  12. MP3固件升级(转)
  13. eth入门之web2 与 web3 的对比
  14. burpsuite实现抓Windows for Android(WSA)包
  15. iphone11屏比例_苹果11的屏幕分辨率是多少
  16. pycharm 自动补全代码提示前符号f,m , p,c,v是什么意思?
  17. 华为IT总监离职时给大家写了一封告别信
  18. 卖掉房子去做理财可取吗?
  19. 【python】 给目录内文件批量改名
  20. 从K歌使用的鼓起 看数字音乐平台趋向

热门文章

  1. SQL Server:使用 PIVOT 行转列和 UNPIVOT 列转行
  2. JavaScript强化教程 -- cocosjs场景切换
  3. ActiveMQ简单使用介绍
  4. Spring AOP切面的时候参数的传递
  5. python requests的安装与简单运用
  6. 翟树卿:如何让数据挖掘助力精准化营销
  7. shell 脚本 自动发送邮件
  8. Python3 中 爬网页 \uxxx 问题
  9. 【转载】Hyperledger学习小结
  10. 【loj6342】跳一跳 期望dp