吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 637|回复: 6
收起左侧

[求助] sqlserver 数据库这2个sql的查询结果不一致

[复制链接]
xiaozhang0372 发表于 2023-9-8 18:03
  这里是两个left join的联表查询的sql语句,在sqlserver2016版本里查询的结果在图里可以看到差异。
查询条件是相同的,只是在做ON条件查询时,
一个是将and info.consumption != 1的条件加到了base_bom_mapping 表的后面,
一个是将and info.consumption != 1的条件加到了base_raw_material 表后面。
但是第二条sql的and info.consumption != 1查询条件好像无效。
不清楚为什么会是这样的结果。

select mapping.opr_id,materialDesc=brm.description,info.consumption
from  base_bom_info info
left join base_bom_mapping mapping  on info.bom_id=mapping.bom_id  and info.consumption != 1
left join base_raw_material brm on info.material_code=brm.raw_code
where mapping.opr_id in('P001201020060500513_Z5YS0022A')  


select mapping.opr_id,materialDesc=brm.description,info.consumption
from  base_bom_info info
left join base_raw_material brm on info.material_code=brm.raw_code and info.consumption != 1
left join base_bom_mapping mapping  on info.bom_id=mapping.bom_id  
where mapping.opr_id in('P001201020060500513_Z5YS0022A')  



1.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

海是倒过来的天 发表于 2023-9-8 22:21
不是第二条的无限 ,是你info.consumption != 1已经在第一条匹配到了,left join不是而且的关系
头像被屏蔽
zbb2012 发表于 2023-9-8 22:50
 楼主| xiaozhang0372 发表于 2023-9-8 22:54
海是倒过来的天 发表于 2023-9-8 22:21
不是第二条的无限 ,是你info.consumption != 1已经在第一条匹配到了,left join不是而且的关系

图片中有2个结果,
第一个结果就是没查询到等于1的,
第2个结果就是查询到了等于1的。
但是为什么会查询到等于1的呢?
我理解的是:要么2条sql都能查询到等于1的,要么2条sql都查不到等于1的,因为两个都是在LEFT  JOIN
的表的ON后面加的条件。现在这个搞得我有点懵。。
bangejunren 发表于 2023-9-9 10:44
本帖最后由 bangejunren 于 2023-9-9 10:48 编辑

表info与mapping左连接结果中包含consumption=1的结果,在第一个sql语句中通过nfo.consumption != 1限制显示,在第二个sql语句中没有限制显示,表info与brm左连接结果中不包含consumption=1的结果,限制与否不会影响显示结果。把限制条件放到where后面就不会出现这个差异了。
海是倒过来的天 发表于 2023-9-10 17:54
xiaozhang0372 发表于 2023-9-8 22:54
图片中有2个结果,
第一个结果就是没查询到等于1的,
第2个结果就是查询到了等于1的。

你可以百度一下left join的实际用法,楼上也说的很明白了
wsl-rm 发表于 2023-9-13 16:47
这个 and info.consumption != 1 是主表的筛选条件,一般主表的筛选添加建议放 where 后面,被关联的表条件一般 采访题主所写位置的
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 19:49

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表