아래 SQL 삭제 다시한번 질문드립니다. > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

아래 SQL 삭제 다시한번 질문드립니다. 정보

아래 SQL 삭제 다시한번 질문드립니다.

본문

아래 답변주신 회원님 ^^정말 감사드립니다.~
에러는 안나는데요 변화도 안일어 나더라구요 ~
혹시몰라서 테이블 이름을 ccc ddd 로 바꿔서 질문합니다 ~
ccc 와 ddd 라는 테이블이 있습니다.
둘다 UID 값을 가지고 있구요 똑같습니다.
그런데 ccc 에는 1,2,3,4,5,6,7,8,9,10 ~~~  이렇게 쭉 들어가 있는데요
ddd에는 1,2,4,5,8,10 이렇게 중간 중간 빠져 있습니다.
ccc에 없는 uid 를 ddd에서 전부 삭제하려고 합니다.
테이블의 빠진UID를 전부 삭제하려면 어떻게 해야 될까요?
ccc 에는 현재 4510개의 uid가 있구요
ddd 에는 현재 3876개가 있네요..
하나하나 비교하면서 삭제해 나가다가 ㅜㅜ 낙오.. 했습니다...
방법이 있을까요? 안된다면 없는 UID 만이라도 리스트로 보여진다면 검색해서 하나하나
삭제하려고 합니다 ~
  • 복사

댓글 전체

mysql> create table a ( uid int);
Query OK, 0 rows affected (0.00 sec)

mysql> insert into a values ( 1), (2), (3),( 4);
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> create table b ( uid int);
Query OK, 0 rows affected (0.00 sec)

mysql> insert into b values ( 1), (3);
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> select * from a;
+------+
| uid  |
+------+
|    1 |
|    2 |
|    3 |
|    4 |
+------+
4 rows in set (0.00 sec)

mysql> select * from b;
+------+
| uid  |
+------+
|    1 |
|    3 |
+------+
2 rows in set (0.00 sec)

mysql> delete a from a left join b on a.uid=b.uid where b.uid is null;
Query OK, 2 rows affected (0.05 sec)

mysql> select * from a;
+------+
| uid  |
+------+
|    1 |
|    3 |
+------+
2 rows in set (0.00 sec)

mysql>
delete from `ddd` where uid NOT IN (select uid from `ccc`)

테스트 안해봤습니다.
물론 이런 걸 시도해보기 전에 백업은 해두실거라 믿습니다. ㅎㅎ
© SIRSOFT
현재 페이지 제일 처음으로