以文本方式查看主题

-  搭建论坛  (http://bbs.diylsoft.com:8118/starforum/index.asp)
--  用户咨询  (http://bbs.diylsoft.com:8118/starforum/list.asp?boardid=4)
----  两个表做连接视图的字段更新问题  (http://bbs.diylsoft.com:8118/starforum/dispbbs.asp?boardid=4&id=8924)

--  作者:ch8115
--  发布时间:2007-8-18 10:30:11
--  两个表做连接视图的字段更新问题

用ado查询控件的命令设置以下语句

select a.fcode ,a.zh,a.gh,b.fcode,b.yhzh from jf200707 a left join dwzh b on a.fcode=b.fcode

用ado命令控件执行

update jf200707 set a.zh=a.gh 更新成功

但执行
update jf200707 set a.zh=b.yhzh则显示 参数 yhzh 没有默认值

请高手赐教


--  作者:FSJM
--  发布时间:2007-8-18 10:54:27
--  
你这是“左连接”,根据规则,这时 的 b.yhzh 的值 为空(null);估计原因出在此处。
--  作者:FSJM
--  发布时间:2007-8-18 10:55:40
--  
left join 第一张表的连接列在第二张表中没有匹配是,第二张表中的值返回null
right join 第二张表的连接列在第一张表中没有匹配是,第一张表中的值返回null
inner join 只返回两张表连接列的匹配项

--  作者:FSJM
--  发布时间:2007-8-18 11:05:43
--  

就是说第一张表中的 记录,如在二张表中,没有匹配记录,这时 的b.字段 的值为“空”。

你可以显示查看一下。


--  作者:ch8115
--  发布时间:2007-8-18 12:16:56
--  问题
我用的两个表都一样,只不过表名不一样,附程序和库,在贵公司邮箱,请帮助看一下
--  作者:FSJM
--  发布时间:2007-8-18 15:27:21
--  

我看了你的例子;你的操作思路有问题:

连接的表,只是临时存在,只有通过“ADO查询1”才能使用。

ADO命令1 实际上是 操作不到你的连接表的;操作的实际上是,数据库中的物理表(这个表中是没有你要的字段的)。

update dwzh set dwzh.yhzh=dwzh1.yhzh

update dwzh set dwzh.yhzh=abcdef

没有区别。