假设我有两张桌子:
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
从已删除的记录中传回所有字段之外,我想要一些等价的东西.
谢谢.
您可以加入两个表并对它们执行删除,例如
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)