繁体   English   中英

如何删除每行的 id 等于另一个表的 id 的所有行(SQL Server)

[英]How to delete all the rows where each row's id is equal to another table's id (SQL Server)

mainGroup (datasetID大于等于1788)

dataGroup' 名称是粗体文本。

datasetID | dataGroup                   | dataDesc
----------+-----------------------------+----------
1790      | **dGroup1** note xxxx       | desc1
1789      | **dGroup1** late notice ..  | desc2
1788      | **dGroup1** jack ...        | desc3

例如)dGroup1

dGroup1_ID | create_date | datasetID
-----------+-------------+-------
379        | 01-01-01    | 1790
378        | 01-01-01    | 1789
377        | 01-01-01    | 1788

我想删除 dGroup1/dGroup2/dGroup3 表中的拖车,其中它的 datasetID 等于 mainGroup 表中相应的 datasetID,其中 mainGroup 中的 datasetID 大于等于 1788。(例如 dGroup1 为 1790,dGroup2 为 1789,等等.)

除了单独删除之外,有没有办法一次执行所有操作?

因此,您想根据表 mainGroup 的内容删除表dGroup1dGroup2dGroup3上的mainGroup

对于dGroup1 ,它看起来像这样:

DELETE t1
FROM dGroup1 t1
    INNER JOIN mainGroup t2
        ON t1.datasetID = t2.datasetID
        AND t2.datasetID >= 1788

您可以对表dGroup2dGroup3重复此操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM