簡體   English   中英

同一張表上的兩個查詢顯示同一行具有不同的值?

[英]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

導致: eventtable_maxtime_DND_partial

為了確保一切正常,我檢查每個房間以確保提供最新的房間:

SELECT * FROM `eventtable`
where RoomNum = "070#" and eventname = "DND" /*where "#" is a specific digit*/
order by eventdatetime asc

第一個看起來不錯: eventtable_701_DND

但是其他人則沒有! (即使時間正確,EventStatus還是錯誤的): eventtable_702_DNDeventtable_703_DNDeventtable_704_DND

我沒有得到的是EventDateTime匹配,這告訴我我正在查看同一行數據,但是內部值(EventStatus)怎么能不同?

請幫忙。 謝謝。

這就是為什么火鳥不允許這樣做。 只有這是有效的

select RoomNum, max(EventDateTime) as MaxDate
from eventtable where eventName = "DND"
group by RoomNum

EventNameEventStatus值是任意的。 您還沒有告訴它想要哪個。 而且我認為您不能。 由於"group by" RoomNumn是隱式的。

要獲取所需的數據,一種方法是使用子選擇,其中max(EventDateTime)返回引用。

通過使用以下查詢,您可以根據需要獲取結果。 請試試。

選擇*從(從Roomtable中選擇RoomNum,EventName,EventStatus,EventDateTime,其中eventName =“ DND”由EventDateTime desc排序)選項卡組由RoomNum;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM