MySQL:更新具有不同列名的多个表?

时间:2011-04-17 10:06:09

标签: mysql

我正在尝试使用一个查询更改两个表中的两个值,但两个表的列名称不同。但是,它们都是主键。

到目前为止,我已经尝试了大量的代码变体,这里有一个类似的变体,用更简单的代码重写,所以我的目的更明确:

update table1, table2
set table1.entry = 5, table2.id = 5
where table1.entry and table2.id = 1;

我想要更改的两个表中的列名具有不同的名称(因此“entry”和“id”)。我知道如何在Excel中使用CONCATENATE执行此操作,但我想知道是否可以使用查询来完成此操作,可能还有JOIN?

提前致谢。

3 个答案:

答案 0 :(得分:2)

我不确定我理解你的问题,但

update table1, table2
set table1.entry = 5, table2.id = 5
where table1.entry = 1 and table2.id = 1;

答案 1 :(得分:1)

由于您要更新的两个字段都是主键,因此每个表中只会更新一行,并且不需要加入:

update table1
set table1.entry = 5
where table1.entry = 1 ;

update table2
set table2.id = 5
where table2.id = 1 ;

答案 2 :(得分:0)

如果您在两个表中都有任何通用标准并且可以通过使用连接来完成,那么这很简单。 例如,假设您的两个表中都有一些公共实体,只需使用此查询,

update table1 t1 join table2 t2 on t1.commonColumn=t2.commomColumn 
set t1.entry=5,t2.id=5 where t1.entry=1 and t2.id=2

希望这有帮助!