我发现了几个类似措辞的问题,但没有一个问题涉及我的具体问题。
如何使用在两个未链接表之间运行的条件执行UPDATE?
例如
TABLE_I
ID, Placed, junk, junk, junk
TABLE_II
ID, Category, Placed, Note, junk, junk...
如果条件在TABLE_II
中WHERE Category=9 AND Note=@testvalue
应该发生UPDATE,其中TABLE_II中的值与TABLE_I中的值匹配
UPDATE TABLE_I SET Placed=@testvalue WHERE
..假设符合上述条件的当前TABLE_I.Placed=Table_II.Placed
这样的步入式调节甚至可以在SQL中使用吗?或者它是否需要在查询之外进行编码以逐步测试?
答案 0 :(得分:1)
SQL
update t1 SET t1.Placed=@testvalue
from Table_1 t1
join Table_2 t2 on t1.placed = t2.placed
where t2.Category=9 AND t2.Note=@testvalue
您必须在更新声明中使用join
Mysql
答案是肯定的,你可以
尝试就好了
update Table_1 t1
join Table_2 t2 on t1.placed = t2.placed
where t2.Category=9 AND t2.Note=@testvalue
SET t1.Placed=@testvalue
编辑:
对于常规更新加入:
UPDATE TABLEA a
JOIN TABLEB b ON a.join_colA = b.join_colB
SET a.columnToUpdate = [something]
答案 1 :(得分:0)
你可以使用table_i上的insert上的触发器以及更新第一个表的过程来执行此类操作。 不确定如何在MySQL或SQL-server中做到这一点(为什么有2个标签?这是什么?),但它可能与在PostgreSQL中执行此操作没有太大区别。 Google快速搜索给了我http://dev.mysql.com/doc/refman/5.0/en/trigger-syntax.html
虽然最好的解决方案可能是实际链接未链接的表。