2016-05-14 71 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