如何删除每行';s id等于另一个表';s id(SQL Server)
如何删除每行';s id等于另一个表';s id(SQL Server),sql,sql-server,Sql,Sql Server,mainGroup(datasetID大于或等于1788) “数据组”名称为粗体文本 datasetID | dataGroup | dataDesc ----------+-----------------------------+---------- 1790 | **dGroup1** note xxxx | desc1 1789 | **dGroup1** late notice .. | desc2 1788
mainGroup
(datasetID大于或等于1788)
“数据组”名称为粗体文本
datasetID | dataGroup | dataDesc
----------+-----------------------------+----------
1790 | **dGroup1** note xxxx | desc1
1789 | **dGroup1** late notice .. | desc2
1788 | **dGroup1** jack ... | desc3
ex)dGroup 1
我想删除dGroup1/dGroup2/dGroup3表中的拖曳,其中其datasetID等于mainGroup表中相应的datasetID,其中mainGroup中的datasetID大于等于1788。(例如,dGroup1为1790,dGroup2为1789等)
是否有任何方法可以同时执行所有操作而不是单独执行删除操作?因此,您希望删除表
dGroup1
、dGroup2
和dGroup3
上的记录,具体取决于表mainGroup
的内容
对于dGroup1
,它如下所示:
删除t1
来自dGroup1 t1
内部连接主组t2
在t1.datasetID=t2.datasetID上
和t2.datasetID>=1788
您可以对表
dGroup2
和dGroup3
重复此操作。您查看了吗?你不确定吗?这看起来像是一个简单的where条件,但你的问题不够清楚,无法编写示例代码。请举例说明您要从哪个表中删除哪些内容?听起来您有多个表要从中删除记录。如果是这种情况,那么您必须对每个表使用单独的删除。可以使用分区视图执行多表删除。但我非常反对他们,无论如何,在这种情况下,这是行不通的。您应该规范化您的表,以便所有的组都在一个tablefacv中,这有帮助吗?如果是,请考虑将其标记为正确答案。谢谢
dGroup1_ID | create_date | datasetID
-----------+-------------+-------
379 | 01-01-01 | 1790
378 | 01-01-01 | 1789
377 | 01-01-01 | 1788