tgg53953 2024-01-25 14:09 采纳率: 0%
浏览 9

关于#java#的问题:该查询按照正常逻辑是可以查不出数据的,而因为SQL的使用错误会导致时间过滤没起作用,也就是第二条SQL语句将WHERE换成AND以后时间过滤就没有作用了

该查询按照正常逻辑是可以查不出数据的,而因为SQL的使用错误会导致时间过滤没起作用,也就是第二条SQL语句将WHERE换成AND以后时间过滤就没有作用了,有厉害的Big God能解释一下这是为什么吗?

正确的SQL,过滤条件生效了

SELECT *   
FROM machine_alarm_history mah   
LEFT JOIN machine m ON m.id = mah.machine_id   
LEFT JOIN resources r ON r.resource_url = m.ip 
WHERE r.pool_id = 'candiate_pool'
AND mah.create_time > '2024-01-25T16:00:00.000Z'
AND mah.create_time < '2024-01-27T15:59:59.000Z'    

错误的SQL,过滤条件没有生效

SELECT *   
FROM machine_alarm_history mah   
LEFT JOIN machine m ON m.id = mah.machine_id   
LEFT JOIN resources r ON r.resource_url = m.ip 
AND r.pool_id = 'candiate_pool'
AND mah.create_time > '2024-01-25T16:00:00.000Z'
AND mah.create_time < '2024-01-27T15:59:59.000Z'  

  • 写回答

4条回答 默认 最新

  • 陈年小趴菜 2024-01-25 14:18
    关注

    WHERE 条件筛选的是结果中满足条件的行。
    LEFT JOIN ON 条件则是在联接多个表时,根据列之间的比较关系来决定哪些行应该被联接,实际筛选的结果行还是取决于主表和WHERE的筛选条件。

    评论

报告相同问题?

问题事件

  • 创建了问题 1月25日

悬赏问题

  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
  • ¥50 需求一个up主付费课程
  • ¥20 模型在y分布之外的数据上预测能力不好如何解决