执行删除时,我可以通过执行 LEFT JOIN
来切换两个或多个表中的行。
DELETE a, b FROM
table1 a
LEFT JOIN table2 b on (a.id = b.id)
WHERE ...
我还可以进行INNER JOIN
DELETE a, b FROM
table1 a
INNER JOIN table2 b on (a.id = b.id)
WHERE ...
这两者之间到底有什么区别?
其他连接呢
在 delete
语句中使用其他连接类型是否有意义?它们有何用处?
删除...联接和使用外键之间有什么区别
如果我使用 ON DELETE CASCADE
子句设置外键:
- 它是否与
INNER
或“LEFT”连接匹配(或以上都不匹配)? - 这是否比使用联接“更好”(更快/更安全)?
我正在使用 MySQL,但我还想知道还有哪些其他数据库支持它。
最佳答案
不同之处在于内连接不会删除任何未连接的内容。左联接可以删除未联接的内容,具体取决于 WHERE
子句中的内容。
关于mysql - DELETE 语句中 INNER 和 LEFT join 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5773695/