2012-02-23 74 views
3

我試圖根據另一個表中的最新日期更新一個表中的DATETIME字段。兩個表之間的通用字段名爲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) 

在table1中,我得到了所有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

謝謝,第一個做的伎倆 – 2012-02-23 07:58:02

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