[英]Two Queries on same table showing same row with different values?
我是SQL的新手,但是我很確定這里發生了奇怪的事情。 我有一個帶有4列(RoomNum,EventName,EventStatus,EventDateTime)的表(事件表)的MySQL數據庫。
某些事件名稱重復,但EventStatus在不同時間切換ON和OFF。 我正在嘗試獲取最新的條目,以便我具有“當前”狀態,因此我使用:
select RoomNum, EventName, EventStatus, max(EventDateTime) as MaxDate
from eventtable where eventName = "DND"
group by RoomNum
導致:
為了確保一切正常,我檢查每個房間以確保提供最新的房間:
SELECT * FROM `eventtable`
where RoomNum = "070#" and eventname = "DND" /*where "#" is a specific digit*/
order by eventdatetime asc
第一個看起來不錯:
但是其他人則沒有! (即使時間正確,EventStatus還是錯誤的):
我沒有得到的是EventDateTime匹配,這告訴我我正在查看同一行數據,但是內部值(EventStatus)怎么能不同?
請幫忙。 謝謝。
這就是為什么火鳥不允許這樣做。 只有這是有效的
select RoomNum, max(EventDateTime) as MaxDate
from eventtable where eventName = "DND"
group by RoomNum
EventName
和EventStatus
值是任意的。 您還沒有告訴它想要哪個。 而且我認為您不能。 由於"group by"
RoomNumn
是隱式的。
要獲取所需的數據,一種方法是使用子選擇,其中max(EventDateTime)
返回引用。
通過使用以下查詢,您可以根據需要獲取結果。 請試試。
選擇*從(從Roomtable中選擇RoomNum,EventName,EventStatus,EventDateTime,其中eventName =“ DND”由EventDateTime desc排序)選項卡組由RoomNum;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.