2011-02-13 78 views
3

我的網站上有一個用戶照片實用程序,它正在更新一些新功能。兩個表之間的MySQL更新查詢

基本結構是一張帶有照片數據和一張帶相冊數據的表格。

[userphotos] 
pictureid 
albumid 
userid 

[useralbums] 
albumid 
userid 
album_name 

是上傳照片的每個用戶獲取已在userphotos的ALBUMID = 0默認專輯,這個默認相冊在useralbums沒有記錄。

這種情況正在改變,所以我插入一條記錄爲每個不同的0 ALBUMID和用戶ID從userphotos到useralbums其中ALBUMID是一個自動遞增領域,我默認了ALBUMNAME爲「我的照片」

所以一個樣本記錄我現在有如下...

[userphotos] 
pictureid: 100 
albumid: 0 
userid: 1 

[useralbums] 
albumid: 1 
userid: 1 
album_name: "My Photos" 

現在我需要做的就是用新的albumid更新userphotos表。

我無法獲取更新語句以正確運行。

它需要做這樣的事情:

update userphotos set 
userphotos.albumid = useralbums.albumid 
where userphotos.userid = useralbums.userid and 
userphoto.albumid = 0 and 
useralbums.albumname = "My Photos" 

或許一些輕鬆可以當我從userphotos的初始插件可以做useralbums?

謝謝。

+0

你得到什麼錯誤? – 2011-02-13 14:32:46

回答

12

明白了:

UPDATE userphotos p, useralbums a 
SET p.albumid = a.albumid 
WHERE 
a.userid = p.userid 
AND a.album_name = "My Photos" 
AND p.albumid = 0