标题:出现错误
只看楼主
guixm1998
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2016-11-8
结帖率:100%
已结贴  问题点数:20 回复次数:15 
出现错误
在VB中使用Sql = "update aa1 set aa1.职称=aa.职称 from aa1inner join aa on aa1.姓名=aa.姓名",出现操作符丢失,在查询表达式中,怎么解决?很急,谢谢
搜索更多相关主题的帖子: update 表达式 姓名 职称 
2016-11-08 11:40
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
update aa1 set aa1.职称=aa.职称 from aa1 inner join aa on aa1.姓名=aa.姓名
查这类问题,你可以把语句直接放到 SQL分析器上运行,看看。
2016-11-08 12:44
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
以下是引用guixm1998在2016-11-8 11:40:43的发言:

在VB中使用Sql = "update aa1 set aa1.职称=aa.职称 from aa1 inner join aa on aa1.姓名=aa.姓名",出现操作符丢失,在查询表达式中,怎么解决?很急,谢谢
inner join 相当 where,你改为
update aa1 set aa1.职称=aa.职称 from aa where aa1.姓名=aa.姓名

要是你查询,以下2个句子是相等的
select aa1.*,aa.职称 from aa1
inner join aa on aa1.姓名=aa.姓名

select aa1.*,aa.职称 from aa1,aa
where aa1.姓名=aa.姓名
2016-11-08 23:35
guixm1998
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2016-11-8
得分:0 
Private Sub Command1_Click()
Dim db As Database
Set db = OpenDatabase(App.Path + "\db.mdb")
Sql = "update aa1 set aa1.职称=aa.职称 from aa1,aa where aa1.姓名=aa.姓名"
db.Execute Sql
End Sub

你好,两个表中都有数据,只是把aa1中的职称数据更新为aa中的职称,运行后,但aa.姓名是空的,而且aa.职称是空的,所以会出现操作符丢失,在查询表达式中,但我不知道怎么解决,请教高手。谢谢
2016-11-09 13:15
厨师王德榜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:183
帖 子:942
专家分:4724
注 册:2013-2-16
得分:10 
你的语句是 from aa1inner join aa  
是不是应该加个空格: from aa1 inner join aa
2016-11-09 13:59
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
以下是引用guixm1998在2016-11-9 13:15:28的发言:

Private Sub Command1_Click()
Dim db As Database
Set db = OpenDatabase(App.Path + "\db.mdb")
Sql = "update aa1 set aa1.职称=aa.职称 from aa1,aa where aa1.姓名=aa.姓名"
db.Execute Sql
End Sub

你好,两个表中都有数据,只是把aa1中的职称数据更新为aa中的职称,运行后,但aa.姓名是空的,而且aa.职称是空的,所以会出现操作符丢失,在查询表达式中,但我不知道怎么解决,请教高手。谢谢

sql2000的是这样的语法的,不知道你的 是 from aa,不是from aa1,aa
Sql = "update aa1 set aa1.职称=aa.职称 from aa where aa1.姓名=aa.姓名"

2016-11-09 16:20
guixm1998
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2016-11-8
得分:0 
用Sql = "update aa1 set aa1.职称=aa.职称 from aa where aa1.姓名=aa.姓名" 出现操作符丢失,在查询表达式中,怎么解决?很急,谢谢
2016-11-09 16:30
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
你的是什么数据库?
上面的语句,在SQL2000数据库上是正常的。
2016-11-09 16:54
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
--在SQL2000数据库上测试
create table aa(姓名 varchar(10),职称 varchar(10))
insert into aa
select '张三','老师' union all
select '李四','教授' union all
select '赵七','教授' union all
select '王五','职工'

create table aa1(姓名 varchar(10),职称 varchar(10),班级 varchar(10))
insert into aa1
select '张三','','高二' union all
select '李四','','高三' union all
select '王五','','高一' union all
select '陈六','','高一'

--更新前
select * from aa
select * from aa1

--更新
update aa1 set aa1.职称=aa.职称 from aa where aa1.姓名=aa.姓名

--更新后
select * from aa1

--删除表
drop table aa
drop table aa1
2016-11-09 17:03
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
update aa1 set aa1.职称=aa.职称 from aa1 inner join aa on aa1.姓名=aa.姓名
你这句话,在SQL2000上运行也是正常的,估计你的问题在数据库上,不知道你用的是什么数据库,你可以运行简单的看看,如

Sql = "select * from aa1"
这个简单的,语法绝对正确的,看看有没问题
2016-11-09 17:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-470878-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.159458 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved