连接还可以在UPDATE语句中使用:
CREATE TABLE Users ( UserId int NOT NULL, AccountId int NOT NULL, RealName nvarchar(200) NOT NULL ) CREATE TABLE Preferences ( UserId int NOT NULL, SomeSetting bit NOT NULL )
SomeSetting通过Preferences表上的谓词更新表过滤的列,Users如下所示:
UPDATE p SETp.SomeSetting= 1 FROM Users u JOIN Preferences p ONu.UserId= p.UserId WHEREu.AccountId= 1234
p是在语句Preferences的FROM子句中定义的别名。仅具有匹配的行AccountId从Users表将被更新。
用左外部联接语句更新
Update t SET t.Column1=100 FROM Table1 t LEFT JOIN Table12 t2 ON t2.ID=t.ID
使用内部联接和聚合功能更新表
UPDATE t1 SET t1.field1 = t2.field2Sum FROM table1 t1 INNER JOIN (select field3, sum(field2) as field2Sum from table2 group by field3) as t2 on t2.field3 = t1.field3
问题内容: 我有以下hibernate映射: 而表如下所示: 我的hibernate查询看起来像: 但是我总是 有人可以帮我如何使它正常工作吗? 问题答案: 您必须使用子查询而不是联接。大致如下: 另外,根据类型的不同,应该以其他格式显示它。
问题内容: 这是Informix更新的正确语法吗? 我收到通用-201“发生语法错误”消息,但看不到出了什么问题。 问题答案: 您的语法错误是table1.code 改成 完整的代码
问题内容: 我正在尝试使用ht的数据更新表tr。两者都有几乎相同的列。因此,为了进行测试,我运行了此查询。 给出129行检查没问题,然后我将更新查询运行为-> 查询成功返回:受影响的行数为4134 有人可以指导我哪里出了问题以及如何解决。 问题答案: 在Postgres中,这有点复杂。但是,我质疑你的逻辑。似乎a是不正确的,因为您正在检查第一个表不是。因此,这 似乎 可以捕获您的逻辑: 该子句是偶
问题内容: 有人可以验证内部连接对PL SQL中的UPDATE语句是否有效吗?例如 问题答案: 该synthax在Oracle SQL中不起作用。 在Oracle中,如果表是“键保留”的,则可以更新联接,即: 假设这是的主键,则此连接是可更新的,因为对于A的每一行,B 最多 只有一行,因此该更新是确定性的。 在您的情况下,由于更新后的值不依赖于另一个表,因此您可以使用具有EXIST条件的简单更新,
问题内容: 我必须更新一个值,该值由3个表的联接返回。 例子: 我想用其他在上述条件下加入的值来更新表的字段值。 如何在MS SQL Server中执行此操作? 问题答案: 为了清楚起见…该子句可以引用该子句中指定的表别名。所以在这种情况下是有效的 通用示例
问题内容: 我有两个表,我想通过加入它们进行更新。我正在使用DB2 V9.7。 ORDER_APPROVALS ORDER_ATTRIBUTE 我想针对Attribute_ID 123更新值字段。到目前为止,我尝试了以下查询。但这是行不通的。我曾尝试过在Netezza中进行类似的加入,但这种方法行之有效。想知道,如何在DB2中做到这一点? 问题答案: 您正在寻找以下语句: