MySQLでDELETE文を使うときにJOIN(外部結合)を使って条件を指定したいときなどに役に立つ書き方です。
商品を管理するこんなテーブル「goodsテーブル」と

商品のサイズを管理するこんなテーブル「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のレコードが削除されました。

コメント