아래 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 만이라도 리스트로 보여진다면 검색해서 하나하나
삭제하려고 합니다 ~
에러는 안나는데요 변화도 안일어 나더라구요 ~
혹시몰라서 테이블 이름을 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 만이라도 리스트로 보여진다면 검색해서 하나하나
삭제하려고 합니다 ~
댓글 전체
select ccc.uid from ccc left join ddd on c.uid=d.uid where d.uid is null
이렇게 하면
ddd에는 없고 ccc에 만 있는 uid가 나옵니다.
이렇게 하면
ddd에는 없고 ccc에 만 있는 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>
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`)
테스트 안해봤습니다.
물론 이런 걸 시도해보기 전에 백업은 해두실거라 믿습니다. ㅎㅎ
테스트 안해봤습니다.
물론 이런 걸 시도해보기 전에 백업은 해두실거라 믿습니다. ㅎㅎ