INSERT INTO [biaowc]
SELECT * FROM fhbiaowc inner join fhbiao ON fhbiaowc.ubiaohao=fhbiao.ubiaohao
WHERE fhbiao.factory = '株洲' 
order by fhbiaowc.ubiaohao
错误提示:'column name or number of suplied values does not match table definition'
但是用INSERT INTO [biaowc] SELECT * FROM fhbiaowc 却可以,为什么?

解决方案 »

  1.   

    INSERT INTO [biaowc]
    (fields1,fields2) values
    SELECT fields1,fields2 FROM fhbiaowc inner join fhbiao ON fhbiaowc.ubiaohao=fhbiao.ubiaohao
    WHERE fhbiao.factory = '株洲' 
    order by fhbiaowc.ubiaohao字段必须一样
      

  2.   

    INSERT INTO [biaowc]
    SELECT fhbiaowc.* FROM fhbiaowc inner join fhbiao ON fhbiaowc.ubiaohao=fhbiao.ubiaohao
    WHERE fhbiao.factory = '株洲' 
    order by fhbiaowc.ubiaohaoorINSERT INTO [biaowc]
    SELECT fhbiaowc.id, fhbiao.name '注意select的字段顺序要和biaowc表中的字段对应'
    FROM fhbiaowc inner join fhbiao ON fhbiaowc.ubiaohao=fhbiao.ubiaohao
    WHERE fhbiao.factory = '株洲' 
    order by fhbiaowc.ubiaohao
      

  3.   

    但是用INSERT INTO [biaowc] SELECT * FROM fhbiaowc 却可以,为什么?
    因为 从一个表中选择,只有这个表的所有字段,而inner join后确有2个表的所有字段了。INSERT INTO [biaowc](fields1,fields2) values
    SELECT fields1,fields2 FROM fhbiaowc inner join fhbiao ON fhbiaowc.ubiaohao=fhbiao.ubiaohao
    WHERE fhbiao.factory = '株洲' 
    order by fhbiaowc.ubiaohao
      

  4.   

    WHERE fhbiao.factory = '株洲' 
    order by fhbiaowc.ubiaohao 是不可以的,
      

  5.   

    insert into table selsect * from Table where [...]
    条件是这2个表的结构一样!
      

  6.   

    inner join后字段变多了,所以执行失败。
      

  7.   

    如各位所说,select *的字段没有对应所以不能添加。谢谢你们!顺便问一条关联删除语句:delete from fhbiaowc where fhbiaowc.ubiaohao=fhbiao.ubiaohao and fhbiao.factory = '株洲' 这样行吗?