MySQL - 根据表X中的删除结果从表Y中删除

Nic*_*ick 1 mysql sql join

假设我有两张桌子:

tableA
-------
type   (varchar)
name   (varchar)

tableB
-------
name   (varchar)
...
Run Code Online (Sandbox Code Playgroud)

我想从tableA哪里删除所有记录type='foo'.我可以这样做:

$STH=$DBH->prepare("DELETE FROM tableA WHERE type = :t");
$STH->bindParam(':t','foo');
try {
    $STH->execute();
} catch(PDOException $e) {
    echo $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)

然后我想要记下name我删除的每个记录中的字段,tableA并使用它来删除tableB这些名称中的任何记录.我怎样才能做到这一点?

$DBH->lastInsertId();除了它name从已删除的记录中传回所有字段之外,我想要一些等价的东西.

谢谢.

Joh*_*Woo 5

您可以加入两个表并对它们执行删除,例如

DELETE  a, b
FROM    table1 a
        INNER JOIN table2 b
          ON a.name = b.name
WHERE   a.type = 'foo'
Run Code Online (Sandbox Code Playgroud)