força LeetCode fivela de banco de dados título escova (196): remover duplicados e-mail

Diretório do artigo

título

Escrever uma consulta SQL para excluir a tabela de Pessoa todo o email duplicado, caixa de correio duplicada manter apenas o menor Id.

Aqui Insert Picture Descrição

Por exemplo, depois de executar a consulta, a tabela Pessoa acima deve retornar as seguintes linhas:

Aqui Insert Picture Descrição

dicas:

Depois de executar SQL, toda a produção da tabela Person.
Use a instrução de exclusão.

análise

Métodos: cláusula WHERE apagar e
algoritmos

Podemos usar o código a seguir para conectar a essa forma em sua própria coluna e-mail.

MySQL

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

Então precisamos encontrar um maior ID outros registros com o mesmo endereço de e-mail. Assim, podemos adicionar uma cláusula WHERE às novas condições como esta.

MySQL

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

Porque temos o registro a ser excluído, para que possamos, eventualmente, alterar a instrução DELETE.

MySQL

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

Aqui Insert Picture Descrição
Aqui Insert Picture Descrição
Aqui Insert Picture Descrição
Aqui Insert Picture Descrição

resposta

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

select * from 	Person;
Publicado 698 artigos originais · Louvor obteve 929 · vista 120 000 +

Acho que você gosta

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