这是我在这里的第一篇文章,如果有任何不妥之处,请事先接受我的道歉。我还是一个尝试学习Java和JDBC的新手。我想知道是否可以在SQL INSERT INTO中将硬编码值与select语句组合在一起。我正在尝试下面的语句,该语句给我这个错误“标量子查询只允许返回一行。”预先感谢您的任何建议。
String sql = "INSERT INTO MEMBER_LESSONS "
+ " (LESSON_ID, BOOKING_DT, LESSON_DT, LESSON_TIME, LESSON_FEE, MEMBER_ID_FK,PRO_ID_FK)"
+ " VALUES (DEFAULT, '2020-01-10', '2020-01-15', '14:00', 50.0,"
+ " (SELECT ml.MEMBER_ID_FK FROM MEMBERS m inner join MEMBER_LESSONS ml on ml.MEMBER_ID_FK = m.MEMBER_ID"
+ " where m.MEMB_NAME = ?),"
+ " (SELECT ml.PRO_ID_FK FROM GOLF_PRO gp inner join MEMBER_LESSONS ml on ml.PRO_ID_FK = gp.PRO_ID"
+ " AND gp.PRO_NAME = 'Tiger Dojen'))";
这是我在这里的第一篇文章,如果有任何不妥之处,请事先接受我的道歉。我还是一个尝试学习Java和JDBC的新手。我想知道是否有可能...
这实际上不是Java问题。如果您直接将SQL输入到SQL客户端中,则SQL将失败。这些子选择中的每一个都返回多行,而如果每个子选择仅返回一行,则SQL可以正常工作。
是。您的代码很难遵循,但是您可以省去这些值。像这样的东西: