cómo eliminar filas duplicadas de una tabla en mysql

Necesito eliminar el registro duplicado de la tabla en mysql. Así que tengo un nombre de tabla Los campos “empleados” son empid, empname, empssn

para obtener un registro duplicado, he escrito una consulta

SELECT COUNT(empssn), empssn FROM employee GROUP BY empssn HAVING COUNT(empssn)>1 

Ahora quiero eliminar registros duplicados. para eso he escrito la consulta es.

 DELETE FROM employee WHERE (empid, empssn) NOT IN (SELECT MIN(empid), empssn FROM employee GROUP BY empssn); 

puede suponer que los registros en la tabla son

 EmpId EmpName EmpSSN ------------------------------- 1 Jack 555-55-5555 2 Joe 555-56-5555 3 Fred 555-57-5555 4 Mike 555-58-5555 5 Cathy 555-59-5555 6 Lisa 555-70-5555 7 Jack 555-55-5555 8 Mike 555-58-5555 9 Cathy 555-59-5555 10 Lisa 555-70-5555 11 Lisa 555-70-5555 

pero tengo un error de mysql es

No puede especificar el ’empleado’ de la tabla de destino para la actualización en la cláusula FROM

¿Funciona el truco de envolverlo en una tabla derivada para este caso? (Basado en http://www.xaprb.com/blog/2006/06/23/how-to-select-from-an-update-target-in-mysql/ )

 DELETE FROM employee WHERE (empid, empssn) NOT IN ( SELECT empid, empssn FROM ( SELECT MIN(empid) AS empid, empssn FROM employee GROUP BY empssn ) X ); 

Edite Sí, parece que funciona así.