php - 如何使用其他表中的外键删除具有主键的行?

标签 php mysql foreign-keys sql-delete

我有一个名为“议程”的表格//翻译:乳品

包含以下行:

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/

相关文章:

php - 如何检查php中的变量是否为空以及是否不需要在表中显示

mysql - sql中每条记录有多个外键?

java - OrderItem (order_orderID) 中的 Hibernate 外键为 null

php - Laravel 5.1 Eloquent 多对多关系

php - 将二进制文件插入 MySQL BLOB

PHP 无法加载动态库 (mongo.so)

mysql - 授予从任何 IP 地址远程访问 MySQL 数据库

php - 在 phpMyAdmin 中使用 sql 更改年份不正确的日期字段

php - 错误号 : 150 "Foreign key constraint is incorrectly formed" how can i fix this?

python - object.filter() 和外键 NULL