sql >> データベース >  >> RDS >> Mysql

IDが一致しないsql行を別のテーブルから削除します

    LEFT JOIN / IS NULLの使用:

    DELETE b FROM BLOB b 
      LEFT JOIN FILES f ON f.id = b.fileid 
          WHERE f.id IS NULL
    

    NOT EXISTSの使用:

    DELETE FROM BLOB 
     WHERE NOT EXISTS(SELECT NULL
                        FROM FILES f
                       WHERE f.id = fileid)
    

    NOT INの使用:

    DELETE FROM BLOB
     WHERE fileid NOT IN (SELECT f.id 
                            FROM FILES f)
    

    警告

    可能な場合は常に、トランザクション内でDELETEを実行して(サポートされていると仮定-IE:MyISAMではない)、問題が発生した場合にロールバックを使用して変更を元に戻すことができます。



    1. ゆっくりと変化する寸法(SCD)の概要

    2. Oracle結合-従来の構文とANSI構文の比較

    3. SQLServerテーブルのID列の値をリセットする方法-SQLServer/T-SQLチュートリアルパート43

    4. MySQLデータベースの使い方を学ぶ