2016-05-14 29 views
0

我必須使用表;使用時間維度忽略「where」子句中的條件的查詢

表A帶有「id」,「u_time」(類型爲datetime),「time_id」(類型爲int)的列。 表B(它是作爲一個時間維度構建的),它包含2000-2010之間的所有可能的日期,直到一小時(因此,每個日期有24行)。 Table B

我試圖更新表A有與下面的查詢每個ID正確TIME_ID:

UPDATE A, B 
SET A.time_id = B.time_id 
WHERE DATE(A.u_time) = B.date 
AND HOUR(A.u_time)=B.hour; 

但是,查詢忽略小時條件,並設置A.所有值TIME_ID 到TIME_ID使用正確的日期但小時0 Query Result

如何使查詢不能忽視不同的時間?

+0

你只是更新'time_id'不是小時,天等,這是你期待什麼? – GavinCattell

回答

0

我想你可以使用一個內連接

UPDATE A 
Inner join B ON (DATE(A.u_time) = B.date AND HOUR(A.u_time)=B.hour) 
SET A.time_id = B.time_id