我正在尝试从子查询更新配置单元表,我知道配置单元不支持这样的更新。有什么办法吗?我的更新如下
UPDATE tmp_aka SET guid = (SELECT mguid FROM tmp_maxs WHERE tmp_maxs.guid = tmp_aka.guid);
mrphzbgm1#
如果 tmp_maxs 包含的所有记录 tmp_aka ,您可以这样做:
tmp_maxs
tmp_aka
INSERT overwrite TABLE tmp_aka SELECT tmp_aka.col1, tmp_aka.col2, …, tmp_maxs.mguid FROM tmp_aka LEFT JOIN tmp_maxs ON tmp_aka.guid = tmp_maxs.guid
kgqe7b3p2#
您可以在子查询中执行联接,以获得与上面查询中相同的值。尝试使用以下查询:
UPDATE tmp_aka SET guid = (SELECT mguid FROM tmp_aka tmp JOIN tmp_maxs ON tmp_aka.guid = tmp_maxs.guid);
r6vfmomb3#
您的更新可能有一个更简单的解决方案
UPDATE tmp_aka SET guid = (SELECT mguid FROM tmp_maxs WHERE tmp_maxs.guid IN tmp_aka.guid);
bvk5enib4#
要比较两个表中的值,需要联接表,然后比较子查询中的值。希望这能对你有所帮助。
UPDATE tmp_aka SET guid = (SELECT t1.mguid FROM tmp_maxs t1 LEFT JOIN tmp_aka t2 ON t1.guid = t2.guid);
c90pui9n5#
您可以为select语句结果创建一个表,并使用insert into table select values from new created table插入一个新值
5条答案
按热度按时间mrphzbgm1#
如果
tmp_maxs
包含的所有记录tmp_aka
,您可以这样做:kgqe7b3p2#
您可以在子查询中执行联接,以获得与上面查询中相同的值。尝试使用以下查询:
r6vfmomb3#
您的更新可能有一个更简单的解决方案
bvk5enib4#
要比较两个表中的值,需要联接表,然后比较子查询中的值。希望这能对你有所帮助。
c90pui9n5#
您可以为select语句结果创建一个表,并使用insert into table select values from new created table插入一个新值