我需要在表中填写一些字段,从同一个表的其他记录中获取信息。 我试着写一个查询来解释我想要做的事情:
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”
答案 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
希望你能得到这个想法并且有所帮助......