我有一个名为“议程”的表格//翻译:乳品
包含以下行:
idagenda // primary key
title
waar
organisatie
...
etc.
...
我还有一个名为议程数据的日记项目/事件日期表格
包含以下行:
id // primary key
idagenda // id from other table
van //from
tot // till
datum // date
当“tot”字段是“Today”中的日期时,它将从数据库中删除这些行,但“agenda”表中的行保持不变。它们没有被删除,因为我没有给它们打电话。
我的删除查询如下所示:
DELETE FROM agendadatum WHERE tot < NOW();
如何从“议程”表中删除与议程数据中的外键具有相同 id 的行?
最佳答案
您可以在一个查询中从多个表中删除:
DELETE agenda.*, agendadatum.*
FROM agenda
JOIN agendadatum USING (idagenda)
WHERE tot < NOW();
这将从议程和议程数据中删除行,并且仅删除与条件匹配的行(如果将 DELETE
替换为 SELECT
,则查询返回的行相同)。
关于php - 如何使用其他表中的外键删除具有主键的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18381529/