2012-02-23 14 views
3

別のテーブルの最新の日付に基づいてあるテーブルのDATETIMEフィールドを更新しようとしています。 2つのテーブル間の共通フィールドにはmsisdnという名前が付けられます。私はこれを試していた別のテーブルのMAX日付から日付フィールドを更新

update table1 t1 
join table2 t2 
on t1.msisdn = t2.msisdn 
set t1.bill_attempt = (Select max(event_time) from table2 
where t1.msisdn = t2.msisdn) 

私はすべてのmsisdnレコードの最新の同じイベント時間を取得しています。どちらの

答えて

4

を支援してください:

UPDATE table1 t1 
SET bill_attempt = 
     (SELECT MAX(event_time) 
     FROM table2 t2 
     WHERE t1.msisdn = t2.msisdn 
    ) 

か:

UPDATE 
     table1 t1 
    JOIN 
     (SELECT msisdn 
      , MAX(event_time) AS event_time 
     FROM table2 
     GROUP BY msisdn 
    ) AS t2 
    ON t1.msisdn = t2.msisdn 
SET t1.bill_attempt = t2.event_time 
+0

おかげで、最初の1は、トリックを行いました –

0
UPDATE table1 t1 
JOIN (SELECT MAX(event_time) AS event_time,msisdn FROM table2 GROUP BY msisdn) t2 
ON t1.msisdn = t2.msisdn 
SET t1.bill_attempt = t2.event_time 
関連する問題