• ベストアンサー

Mysql delete 参照

恐れ入ります。 Mysql で、2つのテーブルがあり、 1つが1000レコード 2つめが1500レコードあります。 プライマリーコードを参照して、 1つめの1000レコードに、2つめのテーブルを揃えたいのですが、 うまくいきません。 delete from t2 left join t1 on t2.num=t1.num where t1.num IS NULL; としましたがうまくいきませんでした。 1つめのテーブルのレコードにマッチしたもの以外を2つめのテーブルから削除みたいな感じです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • root139
  • ベストアンサー率60% (488/809)
回答No.2

EXISTS句を使っても書けますね。 http://dev.mysql.com/doc/refman/5.1/ja/exists-and-not-exists-subqueries.html DELETE FROM t2 WHERE NOT EXISTS(SELECT * FROM t1 WHERE t2.num = t1.num); 2行目は t2.num = t1.num となる t1 の行が存在しなかったら、という条件を表しています。

spider32
質問者

お礼

ありがとうございます。大変参考になりました。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

おしい! マニュアルをよく読みましょう delete t2 from t2 left join t1 on t2.num=t1.num where t1.num is null http://dev.mysql.com/doc/refman/5.1/ja/delete.html

spider32
質問者

お礼

ありがとうございます。大変参考になりました。

関連するQ&A