我想在表中插入两个值。其中一个实际上是从另一个表中使用select语句获取的,如下所示。使用select查询将值传递给插入查询
query = "INSERT INTO empallowance(emp_id_fk,allowance_id_fk) VALUES(SELECT emp_id FROM employee WHERE emp_cnic='" + cnic + "',@allowance_id_fk)";
存在语法错误异常,如图所示。
我想在表中插入两个值。其中一个实际上是从另一个表中使用select语句获取的,如下所示。使用select查询将值传递给插入查询
query = "INSERT INTO empallowance(emp_id_fk,allowance_id_fk) VALUES(SELECT emp_id FROM employee WHERE emp_cnic='" + cnic + "',@allowance_id_fk)";
存在语法错误异常,如图所示。
你不能那样做,但你可以创建一个select语句和insert its results:
"INSERT INTO empallowance (emp_id_fk,allowance_id_fk)
select emp_id, @allowance_id_fk
from employee
WHERE emp_cnic='" + cnic + "'"
另外,注意,使用字符串连接到插入参数是脆弱的SQL注射 - 使用parameterized queries代替
您的SQL语句无效。使用以下内容:
query = "INSERT INTO empallowance SELECT emp_id, @allowance_id_fk FROM employee WHERE emp_cnic='" + cnic + "'";
您可以阅读有关该方法here的所有信息。
您可以修改您的查询如下:
query = "INSERT INTO empallowance(emp_id_fk,allowance_id_fk) SELECT emp_id, @allowance_id_fk FROM employee WHERE emp_cnic= ' " + cnic + "'";
添加“()”插入查询的分离选择查询之间。
INSERT INTO empallowance(emp_id_fk,allowance_id_fk) VALUES((SELECT emp_id FROM employee WHERE emp_cnic='" + cnic + "'),@allowance_id_fk)
您必须在子查询中使用括号。 试试这个:
query = "INSERT INTO empallowance(emp_id_fk,allowance_id_fk) VALUES((SELECT emp_id FROM employee WHERE emp_cnic='" + cnic + "'),@allowance_id_fk)";
请附上错误作为一个字符串,而不是从图片 - 将使人们更容易理解 –