可以将“文字”与“ INSERT INTO”中的选择语句组合]]

问题描述 投票:1回答:2

这是我在这里的第一篇文章,如果有任何不妥之处,请事先接受我的道歉。我还是一个尝试学习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 jdbc insert derby
2个回答
1
投票

这实际上不是Java问题。如果您直接将SQL输入到SQL客户端中,则SQL将失败。这些子选择中的每一个都返回多行,而如果每个子选择仅返回一行,则SQL可以正常工作。


0
投票

是。您的代码很难遵循,但是您可以省去这些值。像这样的东西:

© www.soinside.com 2019 - 2024. All rights reserved.