如何从2个表中删除mysql记录,但如果第2个表中没有记录,如何从第1个表中删除?

如何从2个表中删除mysql记录,但如果第2个表中没有记录,如何从第1个表中删除?,mysql,sql,delete-row,Mysql,Sql,Delete Row,当作业具有文件时,此操作有效。它从文件表中删除文件记录,从作业表中删除作业记录,但是,如果作业没有文件,则什么也不会发生。如果作业没有关联的文件,我希望它仍然从作业表中删除作业记录 DELETE jobs, files FROM jobs INNER JOIN files WHERE jobs.id = $id AND files.jobid = jobs.id 我尝试了以下方法,但没有成功: DELETE jobs, files FROM jobs INNER JOIN files WHER

当作业具有文件时,此操作有效。它从文件表中删除文件记录,从作业表中删除作业记录,但是,如果作业没有文件,则什么也不会发生。如果作业没有关联的文件,我希望它仍然从作业表中删除作业记录

DELETE jobs, files FROM jobs INNER JOIN files WHERE jobs.id = $id AND files.jobid = jobs.id
我尝试了以下方法,但没有成功:

DELETE jobs, files FROM jobs INNER JOIN files WHERE jobs.id = $id OR files.jobid = jobs.id
DELETE jobs, files FROM jobs INNER JOIN files on jobs.id = files.jobid WHERE jobs.id = $id
我也试过这个,但没用:

DELETE jobs, files FROM jobs INNER JOIN files WHERE jobs.id = $id OR files.jobid = jobs.id
DELETE jobs, files FROM jobs INNER JOIN files on jobs.id = files.jobid WHERE jobs.id = $id
编辑:

这就是成功的原因。它基于下面标记为正确的答案,但略有不同

DELETE jobs, files FROM jobs LEFT JOIN files ON files.jobid = jobs.id WHERE jobs.id = $id

它不喜欢那个简短的代码或其他任何东西(当人们说files f或jobs j时,后来他们说f.jobid或j.id)。而且在第一次声明表时,它可能不喜欢星号/星号(不确定)。

只需使用
左连接即可解决您的问题:

删除j.*f*
来自乔布斯j
左连接文件f
关于f.jobid=j.id
其中j.id=$id

@leoarce那么,这个表存在吗?您在问题中给出了相同的表名。