leetcode의 데이터베이스 테이블 리셋 문제
+----+------------------+
| Id | Email |
+----+------------------+
| 1 | [email protected] |
| 2 | [email protected] |
| 3 | [email protected] |
+----+------------------+
Id is the primary key column for this table.
For example, after running your query, the above Person table should have the following rows:
+----+------------------+
| Id | Email |
+----+------------------+
| 1 | [email protected] |
| 2 | [email protected] |
+----+------------------+
처음에 내 생각은 정말 간단했다. 직접 하위 검색으로 삭제하고 싶었다.
delete from Person
where Id in (select * from (select Id from Person group by Email having count(Email)>1) a)
and Id not in (select * from (select min(Id) from Person group by Email having count(Email)>1) b)
오랫동안 SQL을 쓰지 않았는데, 나의 이 생각이 정말 유치하다는 것을 발견하였다.일단 제목 토론 한번 해볼게요.
you're doing an UPDATE/INSERT/DELETE on a table, you can't reference that table in an inner query (you can however reference a field from that outer table...)
표를 쓸 수 없을 때 내부 조회 인용을 합니다.마지막으로 좋은 답을 드리겠습니다.
delete p1 from Person p1,Person p2 where
p1.Email = p2.Email
and
p1.Id > p2.Id
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.