Php 使用单个值从mysql中的多个表中删除多行

Php 使用单个值从mysql中的多个表中删除多行,php,mysql,sql,Php,Mysql,Sql,我有许多不同表结构的mysql表,它们都有以下表名和字段名(左边是表名,右边是字段名) 我希望能够在单个查询中使用单个变量(例如$id=somename)删除行的值 user id, user_image user user_interest user user_lang id user_login user user_personal user user_prefer user user_reviewuser

我有许多不同表结构的mysql表,它们都有以下表名和字段名(左边是表名,右边是字段名)

我希望能够在单个查询中使用单个变量(例如$id=somename)删除行的值

    user  id,
    user_image  user
    user_interest  user 
    user_lang  id 
    user_login  user
    user_personal  user
    user_prefer user
    user_reviewuser
    user_role user_id
    user_translang  user
    user_translate  user
    user_web  id
此外,特定的用户ID可能不会出现在所有表中

我完全不知道如何一次将它们全部删除。任何提示都将不胜感激,我看了一些类似的问题,但找不到正确的答案

您要创建一个,并指定“ON DELETE CASCADE”。对于每个对用户具有外键的表,您都需要这个。比如说,

ALTER TABLE user_image
ADD CONSTRAINT fk_user_image_user FOREIGN KEY (user)
    REFERENCES user(id)
    ON DELETE CASCADE;

您可以使用多表
DELETE
语法。如果任何相关表没有对应的行,则需要使用
左联接

DELETE user, user_image, user_interest, ...
FROM user
LEFT JOIN user_image ON user.id = user_image.user
LEFT JOIN user_interest ON user.id = user_interest.user
...
WHERE user.id = $id


但是,如果使用外键约束将表关联起来,使用“删除级联”上的
,只需从
用户
表中删除该行,所有相关行都将被删除。

外键索引将使其成为一个快照,如果这些表中的任何一个表中没有用户,这有关系吗?没有。如果没有要删除的内容,则不会删除任何内容。谢谢,我想删除级联是一个更好的选择。