2012-12-12 127 views
1

請有人可以幫助我,我有一個用戶表和另一個帶有用戶和日期時間表(這是一個日誌文件,每個用戶有多個日期)。我需要從日誌表中獲取最近的日期,並將其插入到同一用戶旁邊的第一個表中。INSERT INTO SELECT WHERE col = col

這是我有,但它不工作:

INSERT INTO tb1 n (DT) 
SELECT w.DT 
FROM tb2 w 
WHERE w.User = n.User 
ORDER BY w.DT DESC 
limit 1 
+0

「*插入到第一個表*」沒有任何意義。你是否真的想將INSERT插入到users表中?「* next next to same user *」 –

+0

?或更新會很好?因爲我認爲你不想在第一個(用戶)表中有重複的用戶。只想更新該表的max_date列。對? –

回答

3

你不需要,因爲已經有出現在你的表中的記錄在這裏使用INSERT聲明。而是UPDATE它與JOIN

UPDATE tb1 a 
     INNER JOIN 
     (
      SELECT user, MAX(DT) maxDT 
      FROM tb2 
      GROUP by user 
     ) b ON a.user = b.user 
SET  a.DT = b.maxDT