使用别名更新表

时间:2013-12-04 12:50:51

标签: mysql sql

我需要在表中填写一些字段,从同一个表的其他记录中获取信息。 我试着写一个查询来解释我想要做的事情:

update globale2
set
  nita = t.nita,
  tita = t.tita,
  notaita = t.notaita
where
  neng = t.neng and
  nita is null
  (select nita, neng, tita, notaita from globale where uris='mma' and nita is not null) as t

更好地编辑到eplain:

每个记录都有这些字段:“nita”,“tita”,“notaita”,“neng”(“neng”不能为空)

我想填写这些字段:“nita”,“tita”,“notaita”(其中“nita”为空) 与另一个记录中相同的值,其中“neng”等于另一个“neng”

2 个答案:

答案 0 :(得分:5)

但是,您可以加入这两个表格。

UPDATE  globale2 g
        INNER JOIN globale gg
            ON g.neng = gg.neng
SET     g.nita = gg.nita,
        g.tita = gg.tita,
        g.notaita = gg.notaita
WHERE   g.nita IS NULL
        AND gg.uris = 'mma' 
        AND gg.nita IS NOT NULL

答案 1 :(得分:0)

假设有一个表A_temp,有两列'one'和'two'。 表A_temp

ONE    TWO
1       2

这是表格的现状。

查询

UPDATE (SELECT * FROM A_temp ) A SET one = A.two where one = '1'

将表更新为

ONE    TWO
2      2

希望你能得到这个想法并且有所帮助......