sql - 使用 SQL 中的选择子查询结果从选择查询中过滤记录
问题描述
我有一个选择查询,我可以从中得到结果。我还有一张有一些记录的表。我希望我的第一个查询结果集应该过滤我从表中获取的记录。
主选择查询
select ri.pkResourceItemsID,r.locationTimeZone,ss.minBookingPeriod,r.fkBusinessUnitID,r.fkLocationId,r.floor from tblResourceItems ri WITH (NOLOCK)
inner join Enterprise.tblRooms r WITH (NOLOCK) on ri.pkResourceItemsID=r.roomID
inner join tblBusinessUnit bu WITH (NOLOCK) on r.fkBusinessUnitID=bu.pkBusinessUnitID
inner join tblSiteSetup ss WITH (NOLOCK) on bu.pkBusinessUnitID=ss.fkBusinessUnitID
where ri.active=1
and ri.fkResourceID=1
and r.fkresourceId=1
and r.deliveryPoint=0
and bu.deployment=1
and bu.selfSelectRoom=0
and bu.active=1
and r.locationTimeZone = 'India Standard Time'
结果
第二张表
Select fkCondecoRoomID from SYNC.tblExternalRoomMaster where Active=1
结果
我添加了 AND 语句来过滤表结果,但它给了我一个错误。
and ri.pkResourceItemsID = (Select fkCondecoRoomID from SYNC.tblExternalRoomMaster where Active=1)
错误
子查询返回超过 1 个值。当子查询跟随 =、!=、<、<=、>、>= 或子查询用作表达式时,这是不允许的。
解决方案
如果子查询可以返回多于 1 行,您只需要使用in
而不是,这使得最后一部分查询类似于=
and ri.pkResourceItemsID in (Select fkCondecoRoomID from SYNC.tblExternalRoomMaster where Active=1)
推荐阅读
- javascript - 如何使用来自 magento 1.9 中自定义 javascript 文件的 ajax 调用发送产品详细信息?
- c# - 在 c# 中使用母版页自定义用户身份验证
- django - 根据字典键过滤模型
- php - 从移动应用程序检索 PHP 上的 json 数据
- javascript - Jquery 转发器,为什么 .keyup 和 .change 不会在第二个项目及以后触发?
- javascript - React Native:如何在 onPress 期间修复 Button 组件的错误?
- c# - 如何在单个匹配中选择没有特殊字符的整个文本?
- sql - 如何使用 case 表达式修复 ORA-00905 缺少关键字
- ios - 无法在框架中获取类
- mysql - 错误 = 1054 (42S22):“字段列表”中的未知列“公司名称”