logo

MySQL DELETE JOIN

A consulta DELETE é uma subparte da linguagem de manipulação de dados usada para remover as linhas das tabelas. Como excluir participar MySQL é uma pergunta muito popular durante as entrevistas. Não é um processo fácil usar as instruções delete join no MySQL. Nesta seção, descreveremos como você pode excluir registros de várias tabelas com o uso de INNER JOIN ou LEFT JOIN na consulta DELETE.

EXCLUIR JOIN com INNER JOIN

A consulta Inner Join pode ser usada com a consulta Delete para remover linhas de uma tabela e as linhas correspondentes de outra tabela que atendem à condição especificada.

Sintaxe

A seguir está a sintaxe que pode ser usada para excluir linhas de mais de uma tabela usando Inner Join .

 DELETE target table FROM table1 INNER JOIN table2 ON table1.joining_column= table2.joining_column WHERE condition 

Aqui, o destino é o nome de uma tabela de onde queremos excluir linhas correspondendo à condição especificada. Suponha que você queira excluir linhas da tabela T1 e T2 onde id_aluno = 2 , então pode ser escrito como a seguinte afirmação:

tutorial java para iniciantes
 DELETE T1, T2 FROM T1 INNER JOIN T2 ON T1.student_id=T2.student.id WHERE T1.student_id=2; 

Na sintaxe acima, a tabela de destino (T1 e T2) é escrita entre as palavras-chave DELETE e FROM. Se omitirmos qualquer nome de tabela daí, então o excluir declaração remove apenas linhas de uma única tabela. A expressão escrita com SOBRE palavra-chave é a condição que corresponde às linhas nas tabelas que você irá excluir.

Exemplo

Suponha que temos duas tabelas estudantes e Contatos que contém os seguintes dados:

Mesa: alunos

MySQL DELETE JOIN

Tabela: contatos

MySQL DELETE JOIN

Execute a seguinte consulta para entender o Excluir adesão com junção interna. Esta instrução exclui uma linha que possui o mesmo id em ambas as tabelas.

 DELETE students, contacts FROM students INNER JOIN contacts ON students.student_id=contacts.college_id WHERE students.student_id = 4; 

Após a execução bem-sucedida, será exibida a seguinte mensagem:

MySQL DELETE JOIN

Agora, execute a seguinte consulta para verificar as linhas excluídas com sucesso.

tentando int
 mysql> SELECT * FROM students; mysql> SELECT * FROM contacts; 

Você pode ver que as linhas onde o id_aluno=4 esta deletado.

MySQL DELETE JOIN MySQL DELETE JOIN

EXCLUIR JOIN com LEFT JOIN

Já aprendemos a cláusula LEFT JOIN com a instrução SELECT que retorna todas as linhas da tabela esquerda (primeira) e as linhas correspondentes ou não de outra tabela. Da mesma forma, também podemos usar a cláusula LEFT JOIN com a palavra-chave DELETE para excluir linhas da tabela esquerda (primeira) que não possui linhas correspondentes de uma tabela direita (segunda).

A consulta a seguir explica mais claramente onde a instrução DELETE usa LEFT JOIN para excluir linhas de Tabela 1 que não possui linhas correspondentes no Mesa 2 :

 DELETE Table1 FROM Table1 LEFT JOIN Table2 ON Table1.key = Table2.key WHERE Table2.key IS NULL; 

Na consulta acima, observe que usaremos Tabela1 apenas com a palavra-chave DELETE, e não ambas como fizemos na instrução INNER JOIN.

Exemplo

Vamos criar uma mesa ' Contatos ' e ' clientes 'em um banco de dados que contém os seguintes dados:

Tabela: contatos

explicar a independência dos dados
MySQL DELETE JOIN

Tabela: clientes

MySQL DELETE JOIN

Execute a seguinte instrução que remove o cliente que não possui um celular número:

 DELETE customers FROM customers LEFT JOIN contacts ON customers.customer_id = contacts.contact_id WHERE cellphone IS NULL; 

Após a execução bem-sucedida, será exibida a seguinte mensagem:

MySQL DELETE JOIN

Agora, execute a seguinte consulta para verificar as linhas excluídas com sucesso.

 mysql> SELECT * FROM customers; 

Você pode ver que as linhas onde o cliente não possui o número do celular são excluídas.

MySQL DELETE JOIN