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出的值肯定都唯一的 , 帮忙看看我哪里错了

解决方案 »

  1.   

     ((SELECT max(teamID) FROM list_banzu WHERE teamName = 'MK60_A'), '1111111', '111111', 
            (SELECT  max(id) FROM list_type WHERE workType = '班组长')) 
      

  2.   

    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)
            
      

  3.   

    两个Select出来的是结果集,而不是一个字符串,这样是不能直接用于INSERT的.你可以先声明两个字符串变量,把Select出来的结果放进去,
    然后在Insert的时候使用这两个变量.
      

  4.   

    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'
      

  5.   


    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 = '班组长'