首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL -子查询返回1个以上的行减问题

MySQL -子查询返回1个以上的行减问题
EN

Stack Overflow用户
提问于 2020-10-23 17:22:44
回答 1查看 46关注 0票数 0

我有两张桌子,分别是预订和办公室

预订:

办公室:

请注意,我使用的是BITWISE操作的小时可用性,这是在30分钟迭代。

现在的问题是,当用户需要预订一个新的预订时,我需要从每个办公室的办公室可用性(offices.mon_hours)中减去预订的小时数(sum(bookings.hours_booked)),这样我就可以得到一个可用办公室的列表。

到目前为止,这就是我的查询,但是出现了这个错误: Subquery返回超过1行

代码语言:javascript
复制
select * from offices o  
where (mon_hrs -  (SELECT SUM(hours_booked)
 from bookings boo 
 where boo.week = 44
 AND boo.year = 2020
 AND CAST(from_timestamp as DATE) = '2020-10-26'
 GROUP BY office_id)) & 4 ;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-23 17:28:40

测试

代码语言:javascript
复制
SELECT offices.* 
FROM offices   
JOIN (SELECT SUM(hours_booked) summ, office_id
      FROM bookings 
      WHERE week = 44
        AND year = 2020
-- next replacement avoids table scan and allows index usage
--      AND CAST(from_timestamp as DATE) = '2020-10-26'
        AND from_timestamp >= '2020-10-26' 
        AND from_timestamp < '2020-10-26' + INTERVAL 1 DAY
      GROUP BY office_id) sums ON offices.id = sums.office_id
WHERE (offices.mon_hrs - sums.summ) & 4 ;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64497355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档