MySQL更新两个表之间的查询

时间:2011-02-13 14:23:14

标签: mysql

我的网站上有一个用户照片工具,它正在更新一些新功能。

基本结构是包含照片数据的表格和包含相册数据的表格。

[userphotos]
pictureid
albumid
userid

[useralbums]
albumid
userid
album_name

上传照片的每个用户都会获得一张默认相册,该相册在userphotos中的albumid = 0,而此默认相册在useralbums中没有任何记录。

这正在改变,所以我将每个不同的0 albumid和userid的记录从userphotos插入到usealbums中,其中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进行初始插入时,可能更容易做些什么?

感谢。

1 个答案:

答案 0 :(得分:16)

知道了:

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