반응형
하위 쿼리 결과에서 ID 삭제
내가 이걸 가지고 있다고 치자.users
표:
id email
1 test@gmail.com
2 xxp@gmail.com
3 test@gmail.com
4 zzz@gmail.com
그리고 중복된 행을 삭제하고 싶습니다.emails
.
먼저 중복된 이메일을 검색해 보려고 했습니다.
select id
group by email
having count(*)>1
결과는 다음과 같습니다.
갱신된 결과
1
그 다음에 추가했습니다.delete
조항:
delete from users
where id in(
select id
group by email
having count(*)>1 )
결과는 No Errors(오류 없음)이지만 영향을 받는 행은 0개...아무 일도 없었단 뜻이죠
저는 제가 무엇을 잘못하고 있는지 그리고 이것을 하는 다른 방법들을 알고 싶습니다.
사양:Mac에서 Sequel Pro를 사용하는 MySQL 5.5.5-10.1.16-MariaDB
감사해요.
하위 쿼리를 수행하여 중복된 ID 또는 ID를 가져온 후 테이블에서 제거할 수 있습니다.데모 참조: http://sqlfiddle.com/ #!9/f14d05/1
DELETE from users
where id in (
SELECT id
from (
SELECT a.id, count(*) as rn
FROM users a
JOIN users b ON a.email = b.email AND a.id <= b.id
GROUP BY a.id, a.email
) t
where rn>1
);
MSSQL에 대한 테스트.
select min(id) id, email
into #users
from [users]
group by email
delete from [users] where id not in (select id from #users)
drop table #users
언급URL : https://stackoverflow.com/questions/49781354/delete-ids-from-subquery-results
반응형
'programing' 카테고리의 다른 글
utf-8의 utf-8에서 php로 오라클의 데이터 (0) | 2023.11.02 |
---|---|
오라클 - dblink 위에 커밋? (0) | 2023.11.02 |
클래스가 같은 원소의 개수는 어떻게 셀 수 있습니까? (0) | 2023.11.02 |
앱이 독립 실행형 상태인 경우 PWA 앱에서 Facebook 로그인이 작동하지 않음 (0) | 2023.11.02 |
node.js 앱에 대한 코딩 스타일 가이드? (0) | 2023.11.02 |