注册 登录
编程论坛 SQL Server论坛

[求助]多个表的查询和插入问题

爱猪の云 发布于 2006-12-23 19:34, 868 次点击
比如说有2个表一个是用户表,一个是人员表。
人员表里面有人员ID和用户姓名字段,,
我的问题是如何根据人员表里面的用户姓名来查询人员表里面的人员ID 并且把人员ID插入到用户表里面去??
请问下这样的SQL语句怎么写啊··
谢谢啦。。。
9 回复
#2
xu20002006-12-23 19:36

用表a,c,b的方式表示吧,要不我看着迷糊,

#3
爱猪の云2006-12-23 19:46
好的·
比如说有个表A和表B,
表B里面有人员ID和人员姓名两个字段
表B:
人员ID 人员姓名
1 张三
2 李四
问题:如何根据张三来查询表B里面和张三对应的人员ID(1),并且把人员ID(1)插入到表A里面去。
这样的SQL语句怎么写啊?
这样看得懂了吗?
#4
xu20002006-12-23 19:50
查询id
select id from b
where 人员姓名='张三'

插入
insert into a(id)
select id from b
where 人员姓名='张三'
#5
爱猪の云2006-12-23 23:46
谢谢拉。。。。
还有个问题就是这是2个语句的`能用一个SQL语句
把它写出来吗?

。。。下次有问题继续找你。。。

[此贴子已经被作者于2006-12-24 8:02:02编辑过]

#6
棉花糖ONE2006-12-24 11:27
insert into a(id)
select id from b
where 人员姓名='张三'
#7
棉花糖ONE2006-12-24 11:28
上面的一句就是实现你的问题
#8
爱猪の云2006-12-24 12:27
可以啦··
谢谢!!!
#9
爱猪の云2006-12-24 15:00
insert into a(userid,personid,userpw,userstyle) values('张三',(select personid from b where personname='张三'),333,1)

这句出错了 。。。说是在此上下文中不允许使用子查询。只允许使用标量表达式。
大家帮看下要怎么改才可以啊 ··
谢谢啦··


这个问题我已经解决了··原来是values不支持子查询··改为下面这样就可以啦··
insert into a(userid,personid,userpw,userstyle) select '张三',(select personid from b where personname='张三'),333,1

[此贴子已经被作者于2006-12-24 15:53:09编辑过]

#10
棉花糖ONE2006-12-24 15:52

没有这种语法啊
我不是很清楚你到底要什么样的效果,还有select personid from b where personname='张三'这个选出的结果是唯一的吗

1