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
Tabela: contatos
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:
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.
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
Tabela: clientes
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:
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.