我试过在这里搜索这个特定的主题,但没有找到答案......无论如何,我的目标是更新表(我们称之为 t_item),特别是列 owner_id,其值取决于另一个表(t_item_geo 在转链接到 t_geo)。
我不完全确定下面的语法对于更新语句是否真的有效。
UPDATE t_item SET owner_id= 6993 WHERE t_item.owner_id in
(SELECT t_item.owner_id FROM
t_item,
t_item_geo,
t_geo
WHERE
t_item.id = t_item_geo.item_id and
t_item_geo.geo_id = t_geo.id and
t_item.owner_id in (SELECT id FROM t_user WHERE network_id='fffffff') and
t_geo.id in (SELECT id FROM t_geo WHERE full_name = 'yyyyyyy')
);
无论如何,我对这个查询的问题是它更新的行比它应该更新的多得多——如果我只分离选择语句 Oracle 返回 ~750 行但 udpate 本身更新超过 4000 行。几乎就好像条件被完全忽略了——这将指向我可能不正确的语法。
我需要根据从其他几个“加入”表中的选择来更新表中的特定值。希望这是有道理的。
感谢您的任何贡献!
更新:抱歉 - 问题本身可能不清楚,但编辑项目的正确数量应该是 ~750 而不是 ~4000。谢谢!