MySql教程
MySql用户管理
MySQL数据库
MySql表格和视图
MySQL查询
MySQL索引
MySQL子句
MySQL授权
MySql控制流
MySQL条件
MySQL连接
MySQL键
MySQL触发器
MySQL聚合函数
MySQL常用
MySQL正则表达式
MySql差异性

MySQL DELETE JOIN

DELETE查询是数据处理语言的一部分,用于从表中删除行。在采访中,如何删除 MySQL 中的join是一个非常流行的问题。在MySQL中使用delete join语句并非易事。在本节中,我们将描述如何在DELETE查询中使用INNER JOIN或LEFT JOIN从多个表中删除记录。

使用INNER JOIN进行删除联接

内部联接查询可以与删除查询一起使用,以删除一个表中满足指定条件的表中的行和另一表中满足指定条件的匹配行。

语法

以下是可使用内部联接删除多个表中的行的语法。
DELETE target table 
FROM    table1  
INNER JOIN table2
ON table1.joining_column= table2.joining_column
WHERE   condition
在这里,目标是一个表名,我们要通过匹配指定条件从中删除行。假设您要从表 T1 T2 中删除行,其中 student_id = 2 ,则可以将其写为以下语句:
DELETE T1, T2  
FROM    T1  
INNER JOIN T2  
ON T1.student_id=T2.student.id  
WHERE   T1.student_id=2;
在以上语法中,目标表(T1和T2)写在DELETE和FROM关键字之间。如果我们从那里省略任何表名,那么 delete语句只会从单个表中删除行。用 ON 关键字编写的表达式是与要删除的表中的行匹配的条件。

示例

假设我们有两个表 studentscontacts,其中包含以下数据:
表: students
MySQL DELETE JOIN
表: contacts
MySQL DELETE JOIN
执行以下查询以了解使用内部联接删除。该语句删除两个表中具有相同ID的行。
DELETE students, contacts FROM students
INNER JOIN contacts ON students.student_id=contacts.college_id 
WHERE students.student_id = 4;
成功执行后,它将给出以下消息:
MySQL DELETE JOIN
现在,运行以下查询以验证已成功删除行。
mysql> SELECT * FROM students;
mysql> SELECT * FROM contacts;
您可以看到 student_id = 4 所在的行已删除。
MySQL DELETE JOIN MySQL DELETE JOIN

使用左联接删除JOIN

我们已经通过 SELECT语句学习了LEFT JOIN子句,该子句从左(第一个)返回所有行表和另一个表中匹配或不匹配的行。同样,我们也可以使用带有DELETE关键字的LEFT JOIN子句从左(第一个)表中删除行,而右(第二个)表中没有匹配的行。
以下查询对此进行了解释更清楚地说明DELETE语句使用LEFT JOIN从 Table1 中删除在 Table2 中没有匹配行的行:
DELETE Table1 FROM Table1
LEFT JOIN Table2 ON Table1.key = Table2.key 
WHERE Table2.key IS null;
在上面的查询中,请注意,我们将仅将Table1与DELETE关键字一起使用,而不是像INNER JOIN语句一样使用。

示例

让我们创建一个包含以下数据的数据库中的" contacts"表和" customers":
表: contacts
MySQL DELETE JOIN
表: customers
MySQL DELETE JOIN
执行以下语句,删除没有 手机号码的客户:
DELETE customers FROM customers
LEFT JOIN contacts ON customers.customer_id = contacts.contact_id 
WHERE cellphone IS null;
成功执行后,它将给出以下消息:
MySQL DELETE JOIN
现在,运行以下查询以验证已成功删除行。
mysql> SELECT * FROM customers;
您可以看到客户没有手机号的行已删除。
MySQL删除加入
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4