gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 13:14:05 27 4
gpt4 key购买 nike

这在作业有文件时有效。它从文件表中删除文件记录,从作业表中删除作业记录,但是,如果作业没有文件,则不会发生任何情况。如果作业没有关联的文件,我希望它仍然从作业表中删除作业记录。

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 LEFT JOIN files ON files.jobid = jobs.id WHERE jobs.id = $id

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

最佳答案

只需使用LEFT JOIN即可解决您的问题:

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

关于mysql - 如何从2个表中删除mysql记录,但如果第2个表中没有记录,仍然从第1个表中删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21711726/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com