我的查询存在问题。我花了将近一个小时的时间来尝试纠正它,但仍然出现错误。

这是我的代码:

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用于更新。

这是字符串查询的输出:

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。

最佳答案

由于(SELECT Patient_ID from tbl_patient WHERE ID_no = '10000201117')用单引号引起来,因此您可能希望尝试将10000201117用双引号引起来。

例如:

'(SELECT Patient_ID from tbl_patient WHERE ID_no = "10000201117")'

10-04 14:32
查看更多