【问题标题】:MySQL update query between two tables两个表之间的MySQL更新查询
【发布时间】:2011-06-26 11:01:42
【问题描述】:

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

基本结构是一张有照片数据的表格和一张有相册数据的表格。

[userphotos]
pictureid
albumid
userid

[useralbums]
albumid
userid
album_name

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

这正在发生变化,因此我将用户照片中每个不同的 0 相册 ID 和用户 ID 的记录插入到用户相册中,其中相册 ID 是自动增量字段,并且我将相册名称默认为“我的照片”

所以我现在的示例记录如下……

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

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

现在我需要做的是用新的专辑 ID 更新 userphotos 表。

我无法正确运行更新语句。

它需要做这样的事情:

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

或者当我从用户照片到用户相册进行初始插入时,也许可以做一些更简单的事情?

谢谢。

【问题讨论】:

  • 没有收到错误,只是无法正确获取语句结构。

标签: mysql


【解决方案1】:

知道了:

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

【讨论】:

    【解决方案2】:

    您可以使用INNER JOIN

    UPDATE userphotos
    INNER JOIN useralbums ON userphotos.albumid = useralbums.albumid
    SET userphotos.albumid = useralbums.albumid
    WHERE userphoto.albumid = 0 and 
     useralbums.albumname = "My Photos"
    

    来源:

    【讨论】:

      猜你喜欢
      • 2012-03-25
      • 1970-01-01
      • 2014-01-28
      • 1970-01-01
      • 1970-01-01
      • 2012-12-13
      • 1970-01-01
      • 2023-02-08
      • 2011-09-19
      相关资源
      最近更新 更多