mysql - 从 2 个表中删除

标签 mysql sql-delete

我的数据库中有 2 个表

用户...

ID    Username    Randomkey
1     Dionne      938493
2     Liam        902303
3     James       232039
4     Sarah       320923

兴趣...

ID    User_ID    Interest
1     3          Army
2     3          Boxing
3     3          Tennis
4     4          Make Up

在我的兴趣表中,“User_ID”等于我的用户表中的“ID”。

我想编写一个查询,在触发时从我的“用户”表中删除该行,同时从兴趣表中删除与该用户相关的所有数据。

我不确定该怎么做,而且我在 Google 上也没有运气。

如果有人能给我一些建议,或者至少告诉我在哪里可以找到这些信息,那将是一个很大的帮助。

在我的脑海里,我认为它会是这样的:

DELETE FROM users, interests WHERE ID = '$userID' AND User_ID = '$userID'

最佳答案

DELETE users, interests 
FROM users 
LEFT JOIN interests ON users.ID = interests.User_ID
WHERE users.ID = <id>;

当然,如果 interests 表是 InnoDB 并且对具有 ON DELETE CASCADE 的用户有外键约束,这将在用户被删除时自动完成。

关于mysql - 从 2 个表中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6726531/

相关文章:

mysql - 如何删除mysql中可变数量的行?

php - 如何仅删除选定的帖子?

javascript - 来自数据库数据的内容可更改 Dropdownlist

Mysql数据显示多行而不是一行

php - MySQL自主重复删除

java - 在一条语句中删除多行

mysql - sql不允许在where子句比较中使用case变量

mysql - SQL查询2个表的并集

PostgreSQL 删除分组依据

mysql根据select语句从同一个表中删除