我需要使用此选择的结果更新 TblRemHp.tmp
Select TblSub1.id from TblCategorias
left join TblSubcategorias on TblSubcategorias.id_categoria = TblCategorias.id
left join TblSub1 on TblSub1.id_subcategoria = TblSubcategorias.id
left join TblRemHp on TblRemHp.id_categoria = TblCategorias.id and TblRemHp.id_subcategoria = TblSubcategorias.id
where TblRemHp.id_categoria = TblCategorias.id and TblRemHp.id_subcategoria = TblSubcategorias.id and TblRemHp.id_filtro1 = TblSub1.c1
我不知道怎么做这个。 有人可以帮我吗? 真的很感谢。
有两种方法可以做到这一点:
使用更新和加入:
update A
inner join B ON A.id = B.id
set A.data = 'Hello'
where B.data = 'world'
但是既然您提到要使用查询结果进行更新,那么更直接的方法是使用 CTE。
with select_query AS (
select 1 as id -- Your select query comes here
) update A set data = 'Hello' where 1 in (select id from select_query);
select_query CTE 创建一个“临时表”供您在 UPDATE 时查询。您甚至可以只使用子查询,但我更喜欢使用 CTE,因为它具有可读性。