【MySQL】DELETEでJOIN(外部結合)をする書きかた

SQL MySQL

※この記事にはプロモーションが含まれています。

MySQLでDELETE文を使うときにJOIN(外部結合)を使って条件を指定したいときなどに役に立つ書き方です。

商品を管理するこんなテーブル「goodsテーブル」と

goodsテーブル

商品のサイズを管理するこんなテーブル「goods_sizeテーブル」があります。

goods_sizeテーブル

この2テーブルで説明していきます。

スポンサーリンク

JOINしたテーブルを条件に使う

この2テーブルで、 goods_sizeテーブル に無い商品は goodsテーブル から削除(DELETE)したい場合はこんな風に書くことができます。

DELETE G FROM
	goods AS G
LEFT JOIN 
	goods_size AS GS
    ON GS.goods_id = G.goods_id
  WHERE
	GS.goods_id IS NULL

ポイントはテーブルに別名を指定することです。

これでgoods_sizeテーブルにいないgoods_id=3のレコードが削除されました。

削除結果

コメント

タイトルとURLをコピーしました