MySQL 다른 테이블에있는 테이블에서 레코드를 제거하는 방법
-
06-07-2019 - |
문제
15000 개의 항목에 가까운 테이블 A가 있습니다. 표 A가있는 공통 필드가있는 7900 개의 항목이있는 두 번째 표 B가 있습니다.
표 B에도 나타나는 것들을 제외하고 테이블 A에서 세 번째 임시 테이블로 추출해야합니다. 내가 가장 가까운 것은 이것입니다.
INSERT INTO tableC
SELECT *
FROM tableA
INNER JOIN tableB
ON tableA.field IS NOT tableB.field
이 SQL은 TableB의 모든 것을 TableB에있는 항목으로 선택합니다.
내가 잘못 될 아이디어가 있습니까?
해결책
이걸 시도하면 어떨까요?
INSERT INTO tableC
SELECT *
FROM tableA
WHERE tableA.field NOT IN (SELECT tableB.field FROM tableB)
또는 대체 구문을 시도 할 수 있습니다
INSERT INTO tableC
SELECT *
FROM tableA
WHERE NOT EXISTS (SELECT * FROM tableB WHERE tableB.field = tableA.field)
제휴하지 않습니다 StackOverflow