Oracle SQL开发人员使用join命令删除行

Oracle SQL开发人员使用join命令删除行,oracle,join,oracle-sqldeveloper,sql-delete,delete-row,Oracle,Join,Oracle Sqldeveloper,Sql Delete,Delete Row,我正在使用下面的命令使用JOIN查询删除REL_CLIENT_CAT表。但面对控制台中的以下错误。在sql developer中运行时,给定的查询无法正常工作 delete RL_CLIENT_CAT rlcc join CLIENT_CATEGORY cc on cc.client_id = rlcc.client_category_id where rlcc.clientId='298860' and cc.code='client1' 我收到的错误消息 delete RL_CLIE

我正在使用下面的命令使用JOIN查询删除REL_CLIENT_CAT表。但面对控制台中的以下错误。在sql developer中运行时,给定的查询无法正常工作

delete RL_CLIENT_CAT rlcc 
 join CLIENT_CATEGORY cc on cc.client_id = rlcc.client_category_id
 where rlcc.clientId='298860' and cc.code='client1'
我收到的错误消息

delete RL_CLIENT_CAT rlcc 
 left outer join CLIENT_CATEGORY cc on cc.client_id = rlcc.client_category_id
  where rlcc.clientId='298860' and cc.code='client1'
Error at Command Line : 10 Column : 2
Error report -
SQL Error: ORA-00933: SQL command not properly ended
00933. 00000 -  "SQL command not properly ended"
*Cause:    
*Action:

请让我知道。

删除
使用
加入
在oracle中是不可能的。相反,您可以使用以下查询:

DELETE RL_CLIENT_CAT RLCC
 WHERE RLCC.CLIENT_CATEGORY_ID IN (
    SELECT CC.CLIENT_ID
      FROM CLIENT_CATEGORY CC
     WHERE CC.CODE = 'client1'
)
   AND RLCC.CLIENTID = '298860';
或者,您可以使用
EXISTS
使用相关子查询,如下所示:

DELETE RL_CLIENT_CAT RLCC
 WHERE EXISTS (
    SELECT 1
      FROM CLIENT_CATEGORY CC
     WHERE RLCC.CLIENT_CATEGORY_ID = CC.CLIENT_ID
       AND CC.CODE = 'client1'
)
   AND RLCC.CLIENTID = '298860';

在oracle中不可能使用
join
删除
。相反,您可以使用以下查询:

DELETE RL_CLIENT_CAT RLCC
 WHERE RLCC.CLIENT_CATEGORY_ID IN (
    SELECT CC.CLIENT_ID
      FROM CLIENT_CATEGORY CC
     WHERE CC.CODE = 'client1'
)
   AND RLCC.CLIENTID = '298860';
或者,您可以使用
EXISTS
使用相关子查询,如下所示:

DELETE RL_CLIENT_CAT RLCC
 WHERE EXISTS (
    SELECT 1
      FROM CLIENT_CATEGORY CC
     WHERE RLCC.CLIENT_CATEGORY_ID = CC.CLIENT_ID
       AND CC.CODE = 'client1'
)
   AND RLCC.CLIENTID = '298860';