我有桌子;
表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
如何使查询不会忽略不同的时间?
答案 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