Mysql 使用左联接从多个表中删除行

Mysql 使用左联接从多个表中删除行,mysql,sql,database,Mysql,Sql,Database,我在网上搜索了很多,但我不知道如何完成我的简单任务 我想删除我通过以下查询选择的所有行 `SELECT * FROM `session` s LEFT JOIN `pages` p ON (s.Id = p.VisitorSessionId) LEFT JOIN `product_views`ps ON (s.Id = ps.VisitorSessionId) WHERE s.`JSEnabled` = 0 我尝试使用 DELETE FROM `session` s LEFT JOIN `pa

我在网上搜索了很多,但我不知道如何完成我的简单任务

我想删除我通过以下查询选择的所有行

`SELECT * FROM `session` s
LEFT JOIN `pages` p ON (s.Id = p.VisitorSessionId)
LEFT JOIN `product_views`ps ON (s.Id = ps.VisitorSessionId)
WHERE s.`JSEnabled` = 0
我尝试使用

DELETE FROM `session` s
LEFT JOIN `pages` p ON (s.Id = p.VisitorSessionId)
LEFT JOIN `product_views`ps ON (s.Id = ps.VisitorSessionId)
WHERE s.`JSEnabled` = 0
我试着做一些类似于这个帖子答案的事情 但它不起作用


如何在不必在应用程序中执行循环的情况下执行此查询?

如果只需要从一个表中删除,则可以按如下方式执行

DELETE s FROM `session` s
LEFT JOIN `pages` p ON (s.Id = p.VisitorSessionId)
LEFT JOIN `product_views`ps ON (s.Id = ps.VisitorSessionId)
WHERE s.`JSEnabled` = 0
对于使用join从多个表中删除,如下所示

DELETE s,p,ps FROM `session` s
LEFT JOIN `pages` p ON (s.Id = p.VisitorSessionId)
LEFT JOIN `product_views`ps ON (s.Id = ps.VisitorSessionId)
WHERE s.`JSEnabled` = 0

不,是的,我需要删除与所选会话表行匹配的所有表行哦,哇,。。当时我有它,但我使用了表名,。谢谢你的快速回答!我必须等待将此答案标记为已接受lol。DELETE子句中的外部联接是罕见的事件。也许是有原因的@草莓,你为什么这么说?原因是什么?