Java怎么把从一张表查询到的字段插入到另外一张表

public void addObjectFields(Company c)throws SQLException{
Connection conn=DBUtil.getConnection();
String sql=" insert into cdpt_object_fields"+
"( object_id,object_name,object_type,field_id,field_auto_id,field_name,field_type,field_level)"+

" values("+ "select company_id from cdpt_company_info where company_name=c.getCompany_name(),?,?,?,?,?,?,?)";
PreparedStatement ps=conn.prepareStatement(sql);
ps.setString(1, c.getCompany_name());
ps.setInt(2, 0);
ps.setString(3, c.getIndustry_id());
ps.setInt(4, c.getField_autoid());
ps.setString(5, c.getIndustry_name());
ps.setInt(6, 0);
ps.setString(7, "0");
ps.execute();

  }

object_id是从cdpt_company_info表查询得到的,把他插入到cdpt_object_fields表,两个表的company_name一样

insert into cdpt_object_fields
select company_id from cdpt_company_info where company_name=c.getCompany_name()

sql可以直接插入一个查询结果集

不用你一个一个设值的

字段数量和字段类型一致就行

INSERT INTO 新表(字段1,字段2,.......) SELECT 字段1,字段2,...... FROM 旧表 where 条件

insert into table1 select * from table2 where ...

insert into table1 select * from table2 where ...