使用 Join 和 Select 更新 Mysql

问题描述 投票:0回答:1

我需要使用此选择的结果更新 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

我不知道怎么做这个。 有人可以帮我吗? 真的很感谢。

mysql join
1个回答
0
投票

有两种方法可以做到这一点:

使用更新和加入:

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,因为它具有可读性。

© www.soinside.com 2019 - 2024. All rights reserved.