- ベストアンサー
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つめのテーブルから削除みたいな感じです。 よろしくお願いします。
- みんなの回答 (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 の行が存在しなかったら、という条件を表しています。
その他の回答 (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
質問者
お礼
ありがとうございます。大変参考になりました。
お礼
ありがとうございます。大変参考になりました。