【问题标题】:SQL Developer delete a row using join commandSQL Developer 使用 join 命令删除一行
【发布时间】:2021-03-25 22:19:59
【问题描述】:

我正在使用以下命令使用 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 join oracle-sqldeveloper sql-delete delete-row


    【解决方案1】:

    DELETE 使用 join 在 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';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-17
      • 2011-09-18
      • 1970-01-01
      • 1970-01-01
      • 2011-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多