Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用SQL Server中的join从两个表中删除行?_Sql_Sql Server_Join - Fatal编程技术网

如何使用SQL Server中的join从两个表中删除行?

如何使用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

表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;
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没有任何语法可以从多个表中删除,尽管您可以使用级联删除设置外键