在mysql中从多个表中删除

8yparm6h  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(290)

我想结合以下两个问题。记录将始终存在于users表和active\u kpi表中,但它们可能不存在于recipients表中。即使记录不在recipients表中,我仍然希望查询从其他两个表中删除记录。

$sql = "DELETE u, ak FROM users u JOIN active_kpi ak ON ak.group_id = 
    u.group_id WHERE u.group_id = ?";
    $stmt = $this->db->prepare($sql);
    $stmt->execute([$group_id]);

    $sql = "DELETE FROM recipients WHERE group_id = ?";
    $stmt = $this->db->prepare($sql);
    $stmt->execute([$group_id]);
ygya80vv

ygya80vv1#

试试这个:

DELETE u,ak,r
FROM users u INNER JOIN active_kpi ak ON ak.group_id = u.group_id 
    LEFT JOIN recipients r ON ak.group_id = r.group_id
WHERE u.group_id = ?

请注意 left join 用于覆盖缺少收件人的行。

相关问题