2013-12-13 2 views
1

이것은 매우 간단해야하지만 (My) SQL을 처음 접했습니다.MySQL : 다른 쿼리의 결과 집합에없는 레코드를 삭제하십시오.

기본적으로, client 필드가 반드시 고유하지 않은 속성 id, client, etc. 가진 customers 테이블 주어, 나는 client 필드가 이전 값의 중복 행을 제거하고 싶습니다.

SELECT MIN(id) FROM customers GROUP BY client 

내가 원하는 행의 고유 ID 년대를 반환 다음

. 나는 그 밖의 모든 것들을 원해.

나는 아무 소용

DELETE FROM customers WHERE customer.id NOT IN 
    (SELECT MAX(id) FROM customers GROUP BY client) 

을 시도했다. (ERROR 1093 (HY000): You can't specify target table 'customers' for update in FROM clause).

왜 제대로 작동하지 않으며 목표를 달성하기 위해해야합니까?

감사합니다.

답변

0

제거 할 값이 들어있는 임시 테이블을 만들 수 있습니다. 그런 다음 삭제 쿼리는 해당 임시 테이블을 기반으로 할 수 있습니다.

관련 문제