Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用联接(SQL)从2个表中删除_Mysql_Sql - Fatal编程技术网

Mysql 使用联接(SQL)从2个表中删除

Mysql 使用联接(SQL)从2个表中删除,mysql,sql,Mysql,Sql,如果在table2中没有table2.col=table1.id的结果,则sql查询不起作用。如果table2有col=table.id的行,那么它可以正常工作。如何重拍?我需要删除table1的行,即使table2中table.col=table1.id的行不存在 提前感谢。使用左连接 一般规则是,如果使用相同的参数执行SELECT查询,则DELETE查询将删除返回的相同行。由于要在SELECT中使用左联接从表1中获取与表2中不匹配的行,因此必须对DELETE执行相同的操作 如果要安全地测试删

如果在table2中没有table2.col=table1.id的结果,则sql查询不起作用。如果table2有col=table.id的行,那么它可以正常工作。如何重拍?我需要删除table1的行,即使table2中table.col=table1.id的行不存在

提前感谢。

使用左连接

一般规则是,如果使用相同的参数执行SELECT查询,则DELETE查询将删除返回的相同行。由于要在SELECT中使用左联接从表1中获取与表2中不匹配的行,因此必须对DELETE执行相同的操作

如果要安全地测试删除,此一般规则也很有用。执行相应的SELECT,确保它只返回要删除的行。

使用左联接

一般规则是,如果使用相同的参数执行SELECT查询,则DELETE查询将删除返回的相同行。由于要在SELECT中使用左联接从表1中获取与表2中不匹配的行,因此必须对DELETE执行相同的操作


如果要安全地测试删除,此一般规则也很有用。执行相应的SELECT,并确保它只返回要删除的行。

您应该在other中使用左连接来实现此目的:

DELETE `table1`, `table2` 
FROM `table1` 
LEFT JOIN `table2` ON table2.col = table1.id 
WHERE table1.id = 1
有关更多文档,请查看此处:


希望有帮助。

您应该在other中使用左连接来实现这一点:

DELETE `table1`, `table2` 
FROM `table1` 
LEFT JOIN `table2` ON table2.col = table1.id 
WHERE table1.id = 1
有关更多文档,请查看此处:


希望有帮助。

您可以使用左连接尝试以下操作:


您可以使用左连接尝试以下操作:


如果你无论如何都要从表1中删除,那么为什么还要加入表2?@TabAlleman他还想从表2中删除行,如果行在那里。如果你无论如何都要从表1中删除,那么为什么还要加入表2?@TabAlleman他还想从表2中删除行,如果行在那里。很好!谢谢大家,谢谢大家。我可以在8分钟后接受你的回答。太好了!谢谢大家,谢谢大家。我可以在8分钟后接受你的回答。
DELETE `table1`, `table2` 
FROM `table1` 
LEFT JOIN `table2` 
ON table2.col = table1.id WHERE table1.id = 1
DELETE `table1`, `table2` 
FROM `table1` LEFT JOIN `table2` ON table2.col = table1.id WHERE table1.id = 1