SQL查询-在delete中使用select两次
我可以在delete中使用select两次,因为我的需求需要这样做,但是在db中尝试时,我得到了ORA-00936“missing expression”错误SQL查询-在delete中使用select两次,sql,oracle,Sql,Oracle,我可以在delete中使用select两次,因为我的需求需要这样做,但是在db中尝试时,我得到了ORA-00936“missing expression”错误 DELETE FROM GLTB_REIM_DETAILS_TABLE_MAP WHERE SELECT REPORT_NAME_C FROM PRTB_REIM_REPORT_MAP, prtb_pay_remb_claims WHERE (SELECT PAY_ELEMENT_CODE_C FROM PRTB_PAY_REMB_C
DELETE FROM GLTB_REIM_DETAILS_TABLE_MAP WHERE
SELECT REPORT_NAME_C
FROM PRTB_REIM_REPORT_MAP, prtb_pay_remb_claims
WHERE (SELECT PAY_ELEMENT_CODE_C
FROM PRTB_PAY_REMB_CLAIMS
WHERE voucher_no_n='W288'
AND emp_id_c ='78881');
帮助解决此查询 试试看
DELETE FROM GLTB_REIM_DETAILS_TABLE_MAP A
WHERE A.TABLEFIELD in (SELECT REPORT_NAME_C
FROM PRTB_REIM_REPORT_MAP B, prtb_pay_remb_claims C
WHERE B.TABLEFIELD in (SELECT PAY_ELEMENT_CODE_C
FROM PRTB_PAY_REMB_CLAIMS
WHERE voucher_no_n = 'W288'
AND emp_id_c = '78881'));
“Where”条件似乎不完整。请检查一下。你需要把它和一些参数等同起来。检查语法。我认为您缺少表PRTB\u REIM\u REPORT\u MAP和PRTB\u pay\u remb\u索赔之间的一些连接。我应该看一下表格声明,这样会更有帮助。但是delete语句应该是这样的:
DELETE FROM GLTB_REIM_DETAILS_TABLE_MAP A
WHERE EXISTS (SELECT REPORT_NAME_C
FROM PRTB_REIM_REPORT_MAP, prtb_pay_remb_claims
WHERE EXISTS (SELECT *
FROM PRTB_PAY_REMB_CLAIMS
WHERE voucher_no_n = 'W288'
AND emp_id_c = '78881'));
为什么使用A、B和C??我不知道如何使用这个别名,表写入相同字段的方面和差异问题,而不是A,表字段指的是哪个表名的字段??是的,它不起作用。就像维尼告诉你的,在“哪里”的情况下有些东西不见了。请告诉我们如何加入每个表。所有的信息我都帮不上忙。