我对此查询有疑问。我花了差不多一个小时试图纠正它但仍然出错。
继承我的代码:
sql = "INSERT INTO tbl_case \n" +
"(Case_ID, Employee_ID, Patient_ID, Chief_Complaint, Date) \n" +
"VALUES \n" +
"(\n" +
" '',\n" +
" 'EMP0001',\n" +
" '(SELECT Patient_ID from tbl_patient WHERE ID_no = '"+getPatient_ID()+"')',\n" +
" '"+txtcc.getText()+"',\n" +
" '"+time+"'\n" +
")";
dp.sop("Query 'Create Case': "+sql);
dp.Insertion(sql);
注意:dp
代表我继承方法的类。 dp.Selection
是我用于检索数据的简单executeQuery。 dp.Insertion
用于更新。
以下是String中查询的输出:
Query 'Create Case': INSERT INTO tbl_case
(Case_ID, Employee_ID, Patient_ID, Chief_Complaint, Date)
VALUES
(
'',
'EMP0001',
'(SELECT Patient_ID from tbl_patient WHERE ID_no = '10000201117')',
'Head Ache',
'2016-01-30 09:55:27'
)
并且错误是附近的mysql语法错误:
'10000201117)',
'Head Ache',
'2016-01-30 10:07:08'
)' at Line 7
有人发现什么错了吗?我正在使用xampp中的mysql。
答案 0 :(得分:1)
由于(SELECT Patient_ID from tbl_patient WHERE ID_no = '10000201117')
是单引号,您可能需要尝试将10000201117放在双引号中。
例如:
'(SELECT Patient_ID from tbl_patient WHERE ID_no = "10000201117")'
答案 1 :(得分:1)
我认为你不需要用引号括起SELECT
语句。
就像现在一样,此部分'(SELECT Patient_ID from tbl_patient WHERE ID_no = '
被解释为值而不是查询的一部分。
尝试:(SELECT ...)
代替'(SELECT ...)'