2010-03-03 9 views
1

잠정적 인 ID 목록을 사용하면 단일 MYSQL 쿼리를 사용하여 ID가있는 레코드가 데이터베이스에 연결된 레코드가없는 레코드를 빠르게 찾을 수 있습니다 .잠재 ID 목록에서 잘못된 레코드 ID 찾기

목록이 1,3,4이고 레코드가 1과 4는 있지만 3이 아닌 경우 목록에서 3을 반환하는 쿼리가 있습니다.

0 개 이상의 유효하지 않은 ID가 포함될 수있는 1 - 100 개의 ID 목록을 확인하면서 15000 개의 레코드가 포함 된 데이터베이스에 적용해야합니다. 목록은 외부에서 제공되며 다른 테이블에서는 제공되지 않습니다.

답변

0

내 이전 답변 - 죄송합니다. 나도 그 질문을 너무 빨리 읽었습니다.

순수 SQL에서는이 작업을 수행 할 수있는 명확한 방법이 없습니다 (못생긴 하위 쿼리, 공용체 또는 임시 테이블과 관련없는 깨끗한 의미). 그것이 나라면 아마 다음과 같이 할 것입니다. (PHP라고 가정)

+0

고마워. 그것은 대단히 유용합니다! – trowel

1
SELECT idtable.id, records.id as rid FROM idtable 
LEFT JOIN records ON idtable.id = records.id 
WHERE rid IS NULL 
+0

이 솔루션은 목록을 보관하기 위해 새 테이블을 만든 다음 그 목록을 새 테이블에 넣은 다음 기존 테이블? {목록을 설명하기 위해 편집 된 질문이 이미 다른 테이블에 없습니다.} – trowel

+0

에는 빔 라이더와 같은 오해가있었습니다. 그의 해결책은 좋다 :-) –