请教SQL语句问题!急,在线等待。

dawsons 2003-07-18 09:41:30
我用SELECT 和UPDATE做了个查询,为什么都是SQL语句而查询结果不一样。
update bill set totalfee=0 WHERE bill.caller IN (select caller from ndj) AND bill.called IN (select caller as called from ndj)

select * from bill WHERE bill.caller IN (select caller from ndj) AND bill.called IN (select caller as called from ndj)
两条SQL语句执行起来查询结果UPDATE的比SELECT的多很多。为什么?
如果用别的方法有没有快的办法,因为我的表很大,bill表有几百万的记录,用循环执行REPLACE命令得需要2个多小时,而且我的机器是P4 2.4的品牌机器。
请高手指教!!!真的很急。。。分不够再加。他们不让我直接给100分以上。
...全文
66 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fj_jiangqi 2003-07-19
  • 打赏
  • 举报
回复
啊………………
估计这是最快的速度,可………………
-------------------------
我流落在凄凉的世界里-孤苦伶仃
我过着动荡无助的生活-四处漂泊
dawsons 2003-07-19
  • 打赏
  • 举报
回复
你这样写执行后的结果不正确。我不知道你写的是什么意思?看着很费劲。算了。我用最笨的方法算吧。谢谢你。
fj_jiangqi 2003-07-18
  • 打赏
  • 举报
回复
你这样的表结构,估计很难提速。
为什么一次要写入这么多条记录,我觉得这是库表设计的问题。
给一个方法
select ndj
scan all
select bill
set order to tag caller
seek ndj.caller
replace rest totalfee with 0 while caller=ndj.caller
set order to tag called
seek ndj.caller
replace rest totalfee with 0 while called=ndj,caller
select ndj
endscan
此方法要建两个相关的索引,引用vfp在索引上的优点,进行处理的
你可以试试看,说不定速度会有明显的提高,记着replace后的条件一定要用while,范围一定要用rest,这是关键的。
-------------------------
39度十几天了,41度四五天了,今天39度,明天还是39度,没有空调,没有MM,叫我怎么活?
我就要被烤成人干了,救命啊……
20多天没下过雨,也没有阴天过,甚至连多云都很少出现过。
-------------------------
我流落在凄凉的世界里-孤苦伶仃
我过着动荡无助的生活-四处漂泊
dawsons 2003-07-18
  • 打赏
  • 举报
回复
那有没有别的办法可以解决?
mgan 2003-07-18
  • 打赏
  • 举报
回复
update 默认情况下就是替换整张表

2,749

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧