fuerza LeetCode hebilla de la base de datos del título del cepillo (196): Retire de correo electrónico duplicados

Directorio artículo

título

Escribir una consulta SQL para eliminar la tabla Person todos los correos electrónicos duplicados, buzón duplicado retener sólo el ID más pequeño.

Aquí Insertar imagen Descripción

Por ejemplo, después de ejecutar la consulta, la tabla Person anterior debe devolver las siguientes líneas:

Aquí Insertar imagen Descripción

consejos:

Después de ejecutar SQL, toda la producción de la tabla Persona.
Utilice la instrucción de eliminación.

análisis

Métodos: cláusula WHERE DELETE y
algoritmos

Podemos utilizar el siguiente código para conectarse a este formulario en su columna de correo electrónico propia.

MySQL

SELECT p1.*
FROM Person p1,
    Person p2
WHERE
    p1.Email = p2.Email
;

Entonces tenemos que encontrar una mayor ID otros registros con la misma dirección de correo electrónico. Así podemos añadir una cláusula WHERE a las nuevas condiciones de este tipo.

MySQL

SELECT p1.*
FROM Person p1,
    Person p2
WHERE
    p1.Email = p2.Email AND p1.Id > p2.Id
;

Debido a que tenemos el registro a borrar, por lo que con el tiempo puede cambiar la instrucción DELETE.

MySQL

DELETE p1 FROM Person p1,
    Person p2
WHERE
    p1.Email = p2.Email AND p1.Id > p2.Id

Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción

respuesta

delete p1.* from 
Person as p1,
Person as p2
where
p1.email = p2.email
and
p1.id > p2.id;

select * from 	Person;
Publicados 698 artículos originales · ganado elogios 929 · vistas 120 000 +

Supongo que te gusta

Origin blog.csdn.net/qq_35456045/article/details/104798953
Recomendado
Clasificación