如下所示,我希望我可以连接id:1,2value和id:1,3value
如果我修改了一个连通字段,另一个值保持相同的新值
我该怎么办?
ID VALUE
1 __ 10
2 __ 10
3 __ 50
4 __ 50
我修改id == 1,value = 15
ID VALUE
1 __ 15
2 __ 15
3 __ 50
4 __ 50
然后我修改id == 4,value = 100
ID VALUE
1 __ 15
2 __ 15
3 __ 100
4 __ 100
答案 0 :(得分:1)
您的问题的直接答案是在更新中使用where
子句:
update table t cross join
(select t.* from table t where id = XXX) tt
on t.value = tt.value
set t.value = 15;
通过更改子查询中的XXX,您可以对具有匹配值的行执行更新。
您问题的更复杂的答案是使用触发器来维持这种关系。
您的问题的正确答案是修复数据结构。听起来您在同一个表中存储了不同级别的信息。相反,你需要表格。像这样:
现在你的桌子变成了:
id table1Id
1 1
2 1
3 2
4 2
表1有:
id Value
1 10
2 50
然后,您将更新table1
更新到您的桌面。这将更准确地标准化。