我想使用 preparedStatement 编写插入查询。在里面我想要一个选择查询。我做了以下但我得到:你的SQL语法错误
protected final String createStudentQuery = " INSERT INTO student (student_id, ed_level) VALUES (SELECT MAX(user_id) FROM user WHERE usertype ='Student' , ?)";
然后
stmt5 = conn.prepareStatement(createStudentQuery);
stmt5.setString(1, ed_level);
stmt5.executeUpdate();
所有声明(连接,声明)都已完成。
答案 0 :(得分:0)
需要插入2个值,student_id和ed_level。但是在select语句中只有一个值MAX(user_id)。您还必须在select查询中添加ed_level的值。
此外,您的查询应该是:
INSERT INTO <TABLE_1> (COLUMN_1, COLUMN_2,...) SELECT COLUMN_1, COLUMN_2,... FROM <TABLE_2> WHERE <CONDITION>
我已将查询修改为以下内容:
INSERT INTO student (student_id, ed_level) VALUES ((SELECT MAX(user_id) FROM user WHERE usertype ='Student') , ?)
希望这有帮助。