MySQL从多个表中删除行

Abh*_*wal 0 php mysql

我有2个表用户和pd有一个公共列i_uid

为了从这两个表中删除i_uid为1010的单行我使用php脚本中的mysqli :: query发出以下语句

DELETE 
FROM `users`,`pd`
WHERE `users`.`i_uid`=`pd`.`i_uid` AND `users`.`i_uid` = 1010;
Run Code Online (Sandbox Code Playgroud)

有什么不对的吗?

Joh*_*Woo 7

因为要从多个表中删除行,所以唯一缺少的是指定要删除行的表,

DELETE `users`,`pd`
FROM `users`, `pd`
WHERE `users`.`i_uid`=`pd`.`i_uid` AND `users`.`i_uid` = 1010;
Run Code Online (Sandbox Code Playgroud)

在上面的查询中,它将删除两个表中的行.我建议使用ANSI连接更改语句,如下所示,

DELETE  a, b 
FROM    users a
        INNER JOIN pd b
            ON a.i_uid = b.i_uid
WHERE  a.i_uid = 1010
Run Code Online (Sandbox Code Playgroud)

如果你想从users表中删除,

DELETE  a
FROM    users a
        INNER JOIN pd b
            ON a.i_uid = b.i_uid
WHERE  a.i_uid = 1010
Run Code Online (Sandbox Code Playgroud)