首页 > 解决方案 > 在 SQL 中进行左外连接时出现 Sql 语法错误

问题描述

我正在使用 oracle 数据库并试图从中删除重复的记录。同样,我编写了以下查询,但收到此错误

SQL Error: ORA-00933: SQL command not properly ended
00933. 00000 -  "SQL command not properly ended"

它在查询中的outer关键字下给出红色指示符。Left outer join

询问:

DELETE FROM Duplicate LEFT OUTER JOIN (

   SELECT MIN(RowId) as RWID, STUDENT_NAME, STUDENT_ROLLNO, STUDENT_SUBJECT
   FROM Duplicate 
   GROUP BY STUDENT_NAME, STUDENT_ROLLNO, STUDENT_SUBJECT

) as KeepRows ON
   Duplicate.RowId = KeepRows.RWID
WHERE  KeepRows.RWID IS NULL; 

标签: sqloraclesql-delete

解决方案


我能猜到的是您正试图从Duplicate表中删除重复的记录。从 Oracle 的角度来看,您的语法似乎不正确。您可以尝试以下查询 -

DELETE Duplicate D1
 WHERE D1.ROWID NOT IN (SELECT MIN(RowId)
                          FROM Duplicate
                         GROUP BY STUDENT_NAME, STUDENT_ROLLNO, STUDENT_SUBJECT)


推荐阅读