디바이스에 대한 판독 값을 보유한 데이터베이스가 있습니다. 장치에서 최신 읽기를 선택할 수있는 쿼리를 작성하려고합니다. 겉으로는 같고 동일한 결과를 줄 것으로 기대되는 두 가지 쿼리가 있습니다. 그러나 그들은하지 않습니다. 다음과 같이 쿼리는 다음과 같습니다두 개의 유사한 MySQL 쿼리가 다른 결과를 나타냅니다.
첫 번째 쿼리 :
select max(datetime), reading
from READINGS
where device_id = '1234567890'
두 번째 쿼리
select datetime, reading
from READINGS
where device_id = '1234567890' and datetime = (select max(datetime)
from READINGS
where device_id = '1234567890')
(가) 둘 다 읽기 속성에 대한 다른 결과를 제공합니다. 두 번째는 올바른 결과를 제공하지만 첫 번째 이유는 다른 결과를주는 이유는 무엇입니까?
그래서 MSSQL과 같은 것에서 처음 시도해 본다면 아마도 나에게 해를 끼쳐서 내가 잘못했다고 말해 줄 수 있을까? – Perley
첫 번째 쿼리에 대해 @Perley? 아마도 SQLite만이 MySQL과 같은 방식으로 동작한다고 믿습니다. –