Java 在Sql中插入另一个表中的部分值,并手动插入其他表中的部分值

Java 在Sql中插入另一个表中的部分值,并手动插入其他表中的部分值,java,mysql,sqlite,Java,Mysql,Sqlite,在任何人给我从其他表插入值到我的表的代码之前,我想澄清我需要部分值 我的意思是,就像我在制作入学模块一样,在学生被录取后,从FeeDetail表中,使用他的班级和输入表中的他的学业等细节获取付款细节。并创建一张未付发票/工资单 我尝试了此代码,但不起作用 Insert into FeePayment(FeeID,TutionFees,LibraryFees,UniversityDevelopmentFees,UniversityStudentWelfareFees,SecurityDeposit

在任何人给我从其他表插入值到我的表的代码之前,我想澄清我需要部分值

我的意思是,就像我在制作入学模块一样,在学生被录取后,从FeeDetail表中,使用他的班级和输入表中的他的学业等细节获取付款细节。并创建一张未付发票/工资单


我尝试了此代码,但不起作用

Insert into FeePayment(FeeID,TutionFees,LibraryFees,UniversityDevelopmentFees,UniversityStudentWelfareFees,SecurityDeposit,OtherFees,TotalFees,DueFees,FeePaymentID,ScholarNo,Class,TotalPaid)values((select FeeID,TutionFees,LibraryFees,UniversityDevelopmentFees,UniversityStudentWelfareFees,SecurityDeposit,OtherFees,TotalFees,TotalFees from FeesDetails where class='FYBCA'),'FD0001','ST101','FYBCA',0);
我从Sql中得到的错误是


执行SQL查询时出错:13列有5个值
(从SQL而非Java中检查)

首先保留select查询本身的所有常量值('FD0001'、'ST101'、'FYBCA',0)。然后删除“values()”关键字。这应该省略,因为您可能必须插入子查询返回的记录数

最后一个问题是:

Insert into FeePayment(FeeID,TutionFees,LibraryFees,UniversityDevelopmentFees,UniversityStudentWelfareFees,SecurityDeposit,OtherFees,TotalFees,DueFees,FeePaymentID,ScholarNo,Class,TotalPaid) select FeeID,TutionFees,LibraryFees,UniversityDevelopmentFees,UniversityStudentWelfareFees,SecurityDeposit,OtherFees,TotalFees,TotalFees,'FD0001','ST101','FYBCA',0 from FeesDetails where class='FYBCA';

“我试过这段代码,但不起作用”不是很详细。什么都没发生吗?你收到错误信息了吗?是否发生了与您预期不同的情况,如果是,会发生什么?我在执行SQL查询时出错:13列有5个值(从SQL而不是Java中检查),因此,您的select只返回5列,所以在insert子句中只给出您希望数据进入的5列。我需要13列的值,4我手动提供,对于其他9个,我提供了9个冒号“where class='FYBCA'、'FD0001'、'ST101'、'FYBCA',0”看起来非常奇怪。在执行此语句时,我在Select附近遇到语法错误请参见此处:即省略“values”内容。但要注意字段匹配。select可以返回固定值。例如,“从FeePayment中选择FeeId、3、4、5”是一个有效的查询,将提供四列。这就是hemanth使用的技巧。@hemanth对答案进行更改,以便我将其标记为最佳答案