使用时间维度查询忽略“where”子句中的条件

时间:2016-05-14 19:34:17

标签: mysql sql time dimension

我有桌子;

表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;

但是,查询会忽略HOUR条件,并在A.time_id中设置所有值 使用正确的日期但是时间为0的time_id。 Query Result

如何使查询不会忽略不同的时间?

1 个答案:

答案 0 :(得分: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