将字段从T1字段A复制到T2字段A,其中(如果或何时)T1字段B=T2字段B(mysql)

将字段从T1字段A复制到T2字段A,其中(如果或何时)T1字段B=T2字段B(mysql),mysql,Mysql,我想我已经看到了这个问题的一些答案,这些答案可能离我需要的不远,但我对mysql的了解还不够确定,所以我会问这个问题以了解我的具体情况 我有一个包含多个表的数据库,为此,如果“image”表上的image\u media\u file列值与“credits”表上的credit\u file\u name列值相同,我只需要将一个值从表“images”复制到表“credits” 在上面这个例子中,约翰和迈克的名字将被复制。剩下的不会 我打算在phpmyadmin上使用mysql代码 注: 目标表(

我想我已经看到了这个问题的一些答案,这些答案可能离我需要的不远,但我对mysql的了解还不够确定,所以我会问这个问题以了解我的具体情况

我有一个包含多个表的数据库,为此,如果“image”表上的image\u media\u file列值与“credits”表上的credit\u file\u name列值相同,我只需要将一个值从表“images”复制到表“credits”

在上面这个例子中,约翰和迈克的名字将被复制。剩下的不会

我打算在phpmyadmin上使用mysql代码

注:
目标表(图像表)上可能有多个具有相同文件名的值。在这种情况下,可以将积分表中的名称复制到图像表中文件名相同的所有字段中。以下内容适用于您:

  UPDATE Images, Credits  
    SET Images.image_restorer = Credits.credit_restorer 
    WHERE  Images.image_media_file = Credit.credit_file_name

如果一个不同的
credit\u文件名有多个
credit\u restorer
,这将抛出一个错误,因为MySQL不知道应该使用哪个
credit\u restorer
进行更新。但听起来这对你来说可能不是问题。

以下几点应该对你有用:

  UPDATE Images, Credits  
    SET Images.image_restorer = Credits.credit_restorer 
    WHERE  Images.image_media_file = Credit.credit_file_name

如果一个不同的
credit\u文件名有多个
credit\u restorer
,这将抛出一个错误,因为MySQL不知道应该使用哪个
credit\u restorer
进行更新。但听起来这在您的情况下可能不是问题。

您也可以使用Update join

UPDATE Images 
JOIN Credits Images.image_media_file = Credit.credit_file_name 
SET Images.image_restorer = Credits.credit_restorer 
对于你评论中的“逆序”,你应该

UPDATE Credits
JOIN Images Images.image_media_file = Credit.credit_file_name 
SET Credits.image_restorer = Images.credit_restorer 

您还可以使用updatejoin

UPDATE Images 
JOIN Credits Images.image_media_file = Credit.credit_file_name 
SET Images.image_restorer = Credits.credit_restorer 
对于你评论中的“逆序”,你应该

UPDATE Credits
JOIN Images Images.image_media_file = Credit.credit_file_name 
SET Credits.image_restorer = Images.credit_restorer 

试试这样的

    update Images INNER JOIN Credits ON credit_file_name=image_media_file SET 
    Images.image_restorer=Credits.credit_restorer
内部联接:当两个表中至少有一个匹配项时,返回所有行

左联接:返回左表中的所有行,以及右表中匹配的行

右联接:返回右表中的所有行,以及左表中匹配的行


完全联接:当其中一个表中存在匹配项时,返回所有行

    update Images INNER JOIN Credits ON credit_file_name=image_media_file SET 
    Images.image_restorer=Credits.credit_restorer
内部联接:当两个表中至少有一个匹配项时,返回所有行

左联接:返回左表中的所有行,以及右表中匹配的行

右联接:返回右表中的所有行,以及左表中匹配的行


完全联接:当其中一个表中存在匹配项时返回所有行

在开场白中,我问的问题与我真正需要的相反,我问的是“…将值从表“images”复制到表“credits”if…”,我的意思是“…将值从表“credits”复制到表“images”if…”这会对您提供的解决方案产生影响,不是吗?谢谢您的帮助。好的,谢谢您的回复,但由于我使用了下面的答案,我将其标记为已接受的答案。很抱歉,但是谢谢!好的,没问题是对的,标记你在开场白中使用的答案我问的问题与我真正需要的相反,我问“…将值从表“图像”复制到表“信用”如果…”,我的意思是“…将值从表“信用”复制到表“图像”如果…”这会对您提供的解决方案产生影响,不是吗?谢谢您的帮助。好的,谢谢您的回复,但由于我使用了下面的答案,我将其标记为已接受的答案。很抱歉,但是谢谢!好的,没问题,请标记您使用的答案。谢谢您的回复,但它会更新任何、所有或任何字段吗?另一个问题,我以相反的顺序提问,目标表是images表,源表是credits表。这对你的答案有影响吗?你的代码工作正常。我之所以使用它,是因为它的语法是我最熟悉的(我能更好地理解它),非常感谢您的帮助。我不确定我是否应该将这个答案标记为正确答案,因为其他答案也可能是好的…?好的,谢谢你的回复,但是它会更新任何、所有或没有字段吗?另一个问题,我以相反的顺序提问,目标表是images表,源表是credits表。这对你的答案有影响吗?你的代码工作正常。我之所以使用它,是因为它的语法是我最熟悉的(我能更好地理解它),非常感谢您的帮助。我不确定我是否应该将这个答案标记为正确答案,因为其他答案也可能是好的…?谢谢你的回答,你能用语言表达这个表达吗?我不明白内在联结的想法,我的无知。谢谢你的回答,你能用语言表达这个表达吗?我不明白内在联结的想法,我的无知。