互联网服务数据库update

关于两表update的疑问

虚心请教:      使用e0_fg_name表中的fg_name字段值更新e0_mq_agntinfo表的中的fg_name字段值,sql:update e0_mq_agntinfo a set fg_name=(select b.fg_name from (select fg_name,agntnum from e0_fg_name) b where a.agntnum=b.agntnum),环境为:linxu...显示全部
虚心请教:
      使用e0_fg_name表中的fg_name字段值更新e0_mq_agntinfo表的中的fg_name字段值,sql:update e0_mq_agntinfo a set fg_name=(select b.fg_name from (select fg_name,agntnum from e0_fg_name) b where a.agntnum=b.agntnum),环境为:linxu系统,IBMdb2 9.1。更新后e0_mq_agntinfo表中的fg_name字段空值变为了NULL,怎么才能让e0_mq_agntinfo表中的fg_name字段值为空时不显示:NULL收起
参与6

查看其它 4 个回答yadian的回答

少了条件啊~
最后的括号外边还要where条件。
现在没有where,相当于把e0_mq_agntinfo里面所有记录的g_name更新,而在e0_fg_name里面找得到a.agntnum=b.agntnum的时候就更新为相应值,找不到的时候就更新成null了。
就像A(ID,NAME)表有(1,‘湖南’),(2,‘广东’),(3,‘湖北’),B(ID,NAME)有(1,‘北京’),(2,’天津‘),你写UPDATE A SET A.NAME = (SELECT B.NAME FROM B WHERE A.ID=B.ID),最后A表就是(1,‘北京’),(2,‘天津’),(3,NULL)了。
2010-04-19
浏览532

回答者

yadian 最近回答过的问题

回答状态

  • 发布时间:2010-04-19
  • 关注会员:1 人
  • 回答浏览:532
  • X社区推广