如何使用SQL Server中的join从两个表中删除行?
表1 表2 我需要从表1中删除一行,其中id=1,从表2中删除所有行,其中Table1_id=1是Table1中的id 我正在尝试这个:如何使用SQL Server中的join从两个表中删除行?,sql,sql-server,join,Sql,Sql Server,Join,表1 表2 我需要从表1中删除一行,其中id=1,从表2中删除所有行,其中Table1_id=1是Table1中的id 我正在尝试这个: DELETE FROM Table1 INNER JOIN Table2 ON Table2.table1_id = Table1.id AND Table1.id = 1 但我得到了一个错误: 关键字“内部”附近的语法不正确 怎么了?您不应该在一个查询中删除多个表 DELETE FROM Table2 WHERE table1_id = 1; DELET
DELETE FROM Table1
INNER JOIN Table2 ON Table2.table1_id = Table1.id AND Table1.id = 1
但我得到了一个错误:
关键字“内部”附近的语法不正确
怎么了?您不应该在一个查询中删除多个表
DELETE FROM Table2 WHERE table1_id = 1;
DELETE FROM Table1 WHERE id = 1
应该没问题。您希望使用JOIN执行此操作有什么具体原因吗?您不应该在一个查询中执行多个表的删除操作
DELETE FROM Table2 WHERE table1_id = 1;
DELETE FROM Table1 WHERE id = 1
应该没问题。您希望使用JOIN执行此操作有什么具体原因吗?让我们假设您的操作是正确的,并且创建了一个外键Table2.table1_id=table1.id。然后,您只需在表1上设置DELETE CASCADE 在这种情况下,您应该做的一切是:
DELETE FROM Table1 WHERE id = 1
…放松点。这就是数据一致性,伙计:让我们假设你做的事情是正确的,并制作了一个外键Table2.table1\u id=table1.id。然后,您只需在表1上设置DELETE CASCADE 在这种情况下,您应该做的一切是:
DELETE FROM Table1 WHERE id = 1
…放松点。这是数据一致性,伙计:可能重复:@sgedes-不是重复。不同的关系数据库管理系统。MySQL支持多表删除语法。可能重复:@sgedes-不是重复。不同的关系数据库管理系统。MySQL确实支持多表删除语法。不,只是对我的技能感兴趣,非常感谢!我认为这是更好的解决办法。@Marius-不仅不应该,而且不能。SQL Server没有任何语法可以从多个表中删除,尽管您可以使用级联删除设置外键。不,只是对我的技能感兴趣,非常感谢!我认为这是更好的解决办法。@Marius-不仅不应该,而且不能。SQL Server没有任何语法可以从多个表中删除,尽管您可以使用级联删除设置外键