insert into 我哪里错了?

bobzhang1985 2008-07-08 11:00:45
INSERT INTO worker(TeamName, WorkerID, WorkerName, WorkerType)
VALUES ((SELECT teamID FROM list_banzu WHERE teamName = 'MK60_A'), '1111111', '111111',
(SELECT id FROM list_type WHERE workType = '班组长'))

select出的值肯定都唯一的 , 帮忙看看我哪里错了
...全文
102 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ojuju10 2008-07-08
  • 打赏
  • 举报
回复

INSERT INTO worker(TeamName, WorkerID, WorkerName, WorkerType)
select (SELECT teamID FROM list_banzu WHERE teamName = 'MK60_A'), '1111111', '111111', id
FROM list_type WHERE workType = '班组长'

wgzaaa 2008-07-08
  • 打赏
  • 举报
回复
values中是值的列表,不允许使用子查询
2楼可以,如果非在一句中写用select 不用values
INSERT INTO worker(TeamName, WorkerID, WorkerName, WorkerType)
SELECT teamID, '1111111', '111111',(SELECT id FROM list_type WHERE workType = '班组长')
FROM list_banzu WHERE teamName = 'MK60_A'
mzy7511 2008-07-08
  • 打赏
  • 举报
回复
同意2楼的。试试吧
ejoe313 2008-07-08
  • 打赏
  • 举报
回复
呵呵,2楼正解……
ejoe313 2008-07-08
  • 打赏
  • 举报
回复
两个Select出来的是结果集,而不是一个字符串,这样是不能直接用于INSERT的.

你可以先声明两个字符串变量,把Select出来的结果放进去,
然后在Insert的时候使用这两个变量.
brooklyng60 2008-07-08
  • 打赏
  • 举报
回复
declare @teamID varchar(100)
declare @listtype varchar(100)
SELECT @teamID =teamID FROM list_banzu WHERE teamName = 'MK60_A'
SELECT @listtype=id FROM list_type WHERE workType = '班组长'

INSERT INTO worker(TeamName, WorkerID, WorkerName, WorkerType)
VALUES(@teamID,'1111111','111111', @listtype)
octwind 2008-07-08
  • 打赏
  • 举报
回复
((SELECT max(teamID) FROM list_banzu WHERE teamName = 'MK60_A'), '1111111', '111111',
(SELECT max(id) FROM list_type WHERE workType = '班组长'))
zhiguo2008 2008-07-08
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ojuju10 的回复:]
SQL code
INSERT INTO worker(TeamName, WorkerID, WorkerName, WorkerType)
select (SELECT teamID FROM list_banzu WHERE teamName = 'MK60_A'), '1111111', '111111', id
FROM list_type WHERE workType = '班组长'
[/Quote]

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧