DELNER语句中INNER和LEFT之间的区别是什么?

时间:2011-04-24 22:35:08

标签: mysql sql join foreign-key-relationship sql-delete

执行删除时,我可以通过执行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子句设置外键:

  1. 是否符合INNER或“LEFT”加入(或上述任何一项)?
  2. 这是否比使用连接更好(更快/更安全)?
  3. 我正在使用MySQL,但我也想知道哪些其他数据库支持它。

1 个答案:

答案 0 :(得分:2)

不同之处在于内连接不会删除任何不连接的内容。左连接可以删除不加入的内容,具体取决于WHERE子句中的内容。

相关问题