-4

私の場合、私が見つけた例はどれもうまくいきませんでした。私は2つのテーブルを持っています:

itemscat_id; そして catalog_id

itemsにないすべてのレコードを から削除したいと思いcatalogます。

ありがとう。

4

3 に答える 3

4
delete i
from items i
left join catalog c on c.id = i.cat_id
where c.id is null
于 2013-07-04T12:47:05.660 に答える
2

他のいくつかの回答で示されているように、左結合を使用して削除できますが、これは同様に機能し、delete ステートメントで左結合構造を常にサポートしているとは限らない他のデータベースへの移植性が高くなります。

delete from items
where cat_id not in (select id from catalog)

ところで、適切な外部キー制約があれば、存在しないカテゴリを参照するアイテムが存在する可能性はありません。そうした制約を設けることを検討すべきだと思います。

于 2013-07-04T12:47:19.210 に答える