insert into a(金额) values (b1)B表中的内容如下
代码,姓名,金额
1 张三 300
3 李四 400
6 王五 260
我的意思是:
向A表中添加,B表中代码为"3"的人的金额!
insert into a(金额) values (select 代码,金额 from B where 代码="3")
我这样写时系统说子查询不能返回两个字段 。
那我要实现这样的功能要怎么写啊!我实在是没招了!
代码,姓名,金额
1 张三 300
3 李四 400
6 王五 260
我的意思是:
向A表中添加,B表中代码为"3"的人的金额!
insert into a(金额) values (select 代码,金额 from B where 代码="3")
我这样写时系统说子查询不能返回两个字段 。
那我要实现这样的功能要怎么写啊!我实在是没招了!
还有另外一个原因
因为你插入的是一条记录
所以主键不能为空
你看看你的主键是什么
可不可以这样
INSERT A(代码,金额) VALUES("3",SELECT 金额 FROM B WHERE 代码="3")
上面是假设代码为主键
insert into a(金额) values (select 代码,金额 from B where 代码="3")将两个字段的内容加到一个字段里即使要写,也该这样写啊
insert into a(金额) values (select 代码+cast(金额 as varchar) from B where 代码
="3")前提是你的A表的金额字段为字符型
那就用这个insert into a(代码,金额) values (select 代码,金额 from B where 代码
="3")
这样写能达到我的要求,但可不可以这样写?
只 select 金额,可以在WHERE 中用到 代码=“3” 吗?
这样的话你要改数据库表的设计
不要主键
且代码和姓名字段可以为空
这样的话
你就可以到
INSERT A(金额) VALUE(SELECT 金额 FROM B WHERE 代码="3")
但这样一来
估计得到的结果不是你想要的
情况是不是这样的
表B中记录了代码和金额
你现在要把表B中的金额填在A中
代码是它们之间的联系
如果是这样
我觉得你可以这样做首先判断记录是否存在
存在 更新
不存在 添加用程序实现
不仅仅是SQL语句的问题
insert into a(a1,a2) values ('33',(select b2 where b1='1'))
系统说 select b2 where b1='1' 有错
a表
a1 a2
b表
b1 b2
1 100
2 200
3 300
我想要的结果是 向a表添这条记录。33 100
添加后a表
a1 a2
33 100
select * from a
union select from b
语法有错
最后一句
SELECT B2 FROM B WHERE B1="1"
这样写能达到我的要求,但可不可以这样写?
只 select 金额,可以在WHERE 中用到 代码=“3” 吗?当然可以.
直接写不行!
insert into a(a1,a2) select '33',b2 from b where b1='1'