更新中
Update in ingres
UPDATE m
SET m.class_code = 'new cod'
FROM models as m
inner join type a on m.model_number = a.model_number
WHERE a.type_number NOT IN ( 1, 10 )
AND m.class_code = 'UN'
我有这个查询,但在 Ingres DB 中它不想 运行。我不明白为什么。我确定它应该在 MSSQL 中工作,但在 Ingres 中它抛出错误 e_us0845 table 不存在或不拥有
在 Ingres SQL 语法中,UPDATE ... FROM 在 from 部分只需要一个或多个 table 名称,因此您不能在那里使用内部连接语法。但是,由于它是内部连接而不是外部连接,您可以将其写为:
UPDATE m
SET m.class_code = 'new cod'
FROM models as m
WHERE m.model_number = a.model_number
AND a.type_number NOT IN ( 1, 10 )
AND m.class_code = 'UN'
这是等价的。
Paul 发布的 SQL 中似乎存在轻微的语法错误。
由于我是 Whosebug 的新手,我的代表不足以评论他现有的答案,所以我将添加这个单独的答案。
update models as m
from type as a
set m.class_code='new cod'
where m.model_number = a.model_number
and a.type_number not in (1,10)
and m.class_code='UN';
您不能将关联名称与更新目标一起使用。将 set m.class_code='new cod'
更改为 set class_code='new cod'
,它将 运行。
UPDATE m
SET m.class_code = 'new cod'
FROM models as m
inner join type a on m.model_number = a.model_number
WHERE a.type_number NOT IN ( 1, 10 )
AND m.class_code = 'UN'
我有这个查询,但在 Ingres DB 中它不想 运行。我不明白为什么。我确定它应该在 MSSQL 中工作,但在 Ingres 中它抛出错误 e_us0845 table 不存在或不拥有
在 Ingres SQL 语法中,UPDATE ... FROM 在 from 部分只需要一个或多个 table 名称,因此您不能在那里使用内部连接语法。但是,由于它是内部连接而不是外部连接,您可以将其写为:
UPDATE m
SET m.class_code = 'new cod'
FROM models as m
WHERE m.model_number = a.model_number
AND a.type_number NOT IN ( 1, 10 )
AND m.class_code = 'UN'
这是等价的。
Paul 发布的 SQL 中似乎存在轻微的语法错误。 由于我是 Whosebug 的新手,我的代表不足以评论他现有的答案,所以我将添加这个单独的答案。
update models as m
from type as a
set m.class_code='new cod'
where m.model_number = a.model_number
and a.type_number not in (1,10)
and m.class_code='UN';
您不能将关联名称与更新目标一起使用。将 set m.class_code='new cod'
更改为 set class_code='new cod'
,它将 运行。