2016-05-14 3 views
0

テーブルにする必要があります。時間ディメンションを使用して「where」句の条件を無視するクエリ

表Aは、列 "id"、 "u_time"(datetime型)、 "time_id"(int型)です。 表B(時間ディメンションとして作成されたもの)は、2000〜2010年の間のすべての可能な日付を1時間まで保持します(したがって、日付ごとに24行あります)。 Table B

私は次のクエリですべてのIDの正しいTIME_IDを持っているために、表Aを更新しようとしている:

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に をTIME_IDが、時間0 Query Result

でどのように私は、クエリが異なる時間を無視しないで作るのですか?

+0

に参加使用できると思いますか? – GavinCattell

答えて

0

は、私はあなたがこれだけはあなたが期待するものですなど、 `time_id`ない時間、日、更新しているインナーは

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 
関連する問題