该查询按照正常逻辑是可以查不出数据的,而因为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'