【问题标题】:Remove records from table, if its specific value does not appears in another table从表中删除记录,如果其特定值未出现在另一个表中
【发布时间】:2013-12-11 12:55:14
【问题描述】:

我有两张桌子。 T1t1field1t1field2T2t2field1t2field2。 如果t2field1 值在t1field1 中不存在,我想从T2 中删除所有记录

+----------+----------+
| t1field1 | t1field2 |
+----------+----------+
|   1      |    x     |
|   5      |    y     |
|   6      |    z     |
+----------+----------+

+----------+----------+
| t2field1 | t2field2 |
+----------+----------+
|   3      |    x     |
|   4      |    y     |
|   5      |    z     |
+----------+----------+

【问题讨论】:

    标签: mysql sql join sql-delete notin


    【解决方案1】:

    试试这个:

    DELETE t2
    FROM t2 LEFT JOIN t1 ON t1.t1field1 = t2.t2field1
    WHERE t1.t1field1 IS NULL
    

    DELETE FROM t2 WHERE t2.t2field1 NOT IN (SELECT t1.t1field1 FROM t1)
    

    【讨论】:

      【解决方案2】:
      delete t2
      from t2
      left join t1 on t1.t1field1 = t2.field1
      where t1.field1 is null
      

      【讨论】:

        【解决方案3】:

        试试这个

          DELETE FROM T2 
          WHERE t2field1 NOT IN (SELECT t1field1 FROM T1)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-11-29
          • 2015-11-08
          • 1970-01-01
          • 2022-01-24
          • 2019-11-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多