使用与另一个表中的列匹配的列值更新所有行

时间:2015-12-14 09:31:29

标签: mysql

想象一下两个表分别包含A,B,C和D,E,F列。

表#1在列B中具有一系列具有相同值的行,并且列C中的值在列F中具有多个匹配。

这是由于表#1有' Groups'并且每个小组都可以拥有'子组'。

专栏' C'是'子组ID'。

我需要填写表#2中的表#1:

  • 如果列C与F匹配,则为A列分配值。
  • 如果列A更改,则列B中的所有值都相同,将从E列中分配值。

说,我有

表A:

 A    B    C 
null AAA  123
null AAA  321
null ABA  789

列' C'是一个'子组ID'。

表B:

 D    E    F
 1   KFA  123
 2   DQD  345
 3   BHD  567

现在,如果一个子组ID为'使用值更新,然后更新该组'组'应该用相同的值更新。

更新后,我应该

 A    B    C 
 1   KFA  123
 1   KFA  321
null ABA  789

基本上,第一个表被分组,我需要分组更新它,将它们的A和B列更改为表#2中的相应值,我可以在一段时间内完全正确。我查看了很多与Stack Overflow相关的问题,但找不到能满足我需求的问题。我之前的尝试符合

update A join B on
  A.C=B.F
set
 A.A=B.D,
 A.B=B.E;

有一些变化。

编辑:很抱歉迟到的回复,退出了然后忘记了我的密码。这个问题可以忽略,因为我不再需要这样做了。

0 个答案:

没有答案