私の場合、私が見つけた例はどれもうまくいきませんでした。私は2つのテーブルを持っています:
items
とcat_id
; そして
catalog
_id
items
にないすべてのレコードを から削除したいと思いcatalog
ます。
ありがとう。
私の場合、私が見つけた例はどれもうまくいきませんでした。私は2つのテーブルを持っています:
items
とcat_id
; そして
catalog
_id
items
にないすべてのレコードを から削除したいと思いcatalog
ます。
ありがとう。
delete i
from items i
left join catalog c on c.id = i.cat_id
where c.id is null
他のいくつかの回答で示されているように、左結合を使用して削除できますが、これは同様に機能し、delete ステートメントで左結合構造を常にサポートしているとは限らない他のデータベースへの移植性が高くなります。
delete from items
where cat_id not in (select id from catalog)
ところで、適切な外部キー制約があれば、存在しないカテゴリを参照するアイテムが存在する可能性はありません。そうした制約を設けることを検討すべきだと思います。