gpt4 book ai didi

sql - 为什么在我的更新 sql 查询中会影响不同的值?

转载 作者:行者123 更新时间:2023-12-04 15:56:47 24 4
gpt4 key购买 nike

一个非常基本的问题,我有一个我想做的更新,当我执行更新时,它会影响 2000 多行,但是当我只在子查询中执行选择查询时,我会得到 1726 行。我知道我的更新声明有问题,有人可以帮忙吗?

update ship_plu 
set pluc_dt='1-Jan-1999'
where pluc_dt in (
select sp.pluc_dt
from ship_plu sp,ship s
where sp.pluc_dt between '16-Feb-2014' and '20-Feb-2014'
and sp.ship_num=s.ship_num
and s.rcv_dt is null
)

所以上面执行的子查询只带回 1726 行,但是当我执行整个更新查询时它会影响超过 2000 行,我只想做 1726 行?

最佳答案

你想要一个相关的子查询。但是你有引用外部表的内部子查询。试试这个:

update ship_plu sp
set pluc_dt='1-Jan-1999'
where pluc_dt in (
select sp.pluc_dt
from ship s
where sp.pluc_dt between '16-Feb-2014' and '20-Feb-2014'
and sp.ship_num=s.ship_num
and s.rcv_dt is null
);

这种形式的查询适用于任何数据库。根据您使用的实际数据库,您还可以使用其他语法(使用 join)。

关于sql - 为什么在我的更新 sql 查询中会影响不同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21913769/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com