Php MySQL从多个表中删除行
我有两个表users和pd,它们有一个公共列I\u uid 为了从两个表中删除i_uid为1010的一行,我在php脚本中使用mysqli::query发出了以下语句Php MySQL从多个表中删除行,php,mysql,Php,Mysql,我有两个表users和pd,它们有一个公共列I\u uid 为了从两个表中删除i_uid为1010的一行,我在php脚本中使用mysqli::query发出了以下语句 DELETE FROM `users`,`pd` WHERE `users`.`i_uid`=`pd`.`i_uid` AND `users`.`i_uid` = 1010; 有什么问题吗?因为您要从多个表中删除行,唯一缺少的是指定将在哪些表中删除该行 DELETE `users`,`pd` FROM `users`, `pd
DELETE
FROM `users`,`pd`
WHERE `users`.`i_uid`=`pd`.`i_uid` AND `users`.`i_uid` = 1010;
有什么问题吗?因为您要从多个表中删除行,唯一缺少的是指定将在哪些表中删除该行
DELETE `users`,`pd`
FROM `users`, `pd`
WHERE `users`.`i_uid`=`pd`.`i_uid` AND `users`.`i_uid` = 1010;
在上面的查询中,它将从两个表中删除行。我建议使用ANSI join更改语句,如下所示
DELETE a, b
FROM users a
INNER JOIN pd b
ON a.i_uid = b.i_uid
WHERE a.i_uid = 1010
如果要从用户表中删除
由于要从多个表中删除行,因此唯一缺少的是指定将在哪些表中删除该行
DELETE `users`,`pd`
FROM `users`, `pd`
WHERE `users`.`i_uid`=`pd`.`i_uid` AND `users`.`i_uid` = 1010;
在上面的查询中,它将从两个表中删除行。我建议使用ANSI join更改语句,如下所示
DELETE a, b
FROM users a
INNER JOIN pd b
ON a.i_uid = b.i_uid
WHERE a.i_uid = 1010
如果要从用户表中删除
使用Left Join并指定要删除其相应行的表
DELETE users, pd
FROM users, pd
LEFT JOIN pd
ON pd.i_uid = users.i_uid
WHERE users.i_uid = 1010
使用Left Join并指定要删除其相应行的表
DELETE users, pd
FROM users, pd
LEFT JOIN pd
ON pd.i_uid = users.i_uid
WHERE users.i_uid = 1010
其他答案是正确的,但因为没有人提到它,我会的。您可以使用InnoDB引擎并指定外键和级联删除。因此,每次删除用户时,它都会删除不同表中的所有引用行
阅读外键并删除级联其他答案都是正确的,但由于没有人提到,我会这样做。您可以使用InnoDB引擎并指定外键和级联删除。因此,每次删除用户时,它都会删除不同表中的所有引用行
阅读外键,并在CASCADE上删除。为了保持简单,我建议只使用两个查询:
DELETE FROM `users` WHERE `i_uid` = 1010;
DELETE FROM `pd` WHERE `i_uid` = 1010;
为了保持简单,我建议只使用两个查询:
DELETE FROM `users` WHERE `i_uid` = 1010;
DELETE FROM `pd` WHERE `i_uid` = 1010;
当你尝试的时候它能工作吗?当你尝试的时候它能工作吗?thanx寻求帮助…你能解释一下连接语法吗…通常我以前是从…指定列名的…这是删除te行的源表。这是必需的,因为您的查询涉及多个表。我们不是在FROM之后指定这些表吗?那么为什么还要在它之前呢?FROM子句之前的表是删除记录的位置。FROM子句后面的表是搜索记录的位置。但是如果你只在一个表中删除,它是可选的。这对我不起作用。这是我的查询:从帖子中删除p,pc,l,c p内部连接帖子内容pc on p.post\u id=pc.post\u id内部连接喜欢l on p.post\u id=l.post\u id内部连接评论c on c.post\u id=p.post\u id,其中p.post\u id=406;thanx需要帮助…你能解释一下连接语法吗…通常我在…之前指定列名,这是删除te行的源表。这是必需的,因为您的查询涉及多个表。我们不是在FROM之后指定这些表吗?那么为什么还要在它之前呢?FROM子句之前的表是删除记录的位置。FROM子句后面的表是搜索记录的位置。但是如果你只在一个表中删除,它是可选的。这对我不起作用。这是我的查询:从帖子中删除p,pc,l,c p内部连接帖子内容pc on p.post\u id=pc.post\u id内部连接喜欢l on p.post\u id=l.post\u id内部连接评论c on c.post\u id=p.post\u id,其中p.post\u id=406;