SQL 如果没有关系则删除行
SQL Delete row if no relationships present
我有一个采购订单 table 和一个商品 table,一个采购订单可以有很多商品,但我想删除所有没有商品的采购订单。在 SQL 中可以吗?
你可以使用 not exists
.
假设您的 table 结构如下:
purchase_orders(id)
purchase_order_items(purchase_order_id)
table purchase_order_items
中的 purchase_order_id
是 table purchase_orders
中 id
的外键,看起来像:
delete from purchase_orders po
where not exists (
select 1 from purchase_order_items poi where poi.purchase_order_id = po.id
)
当然可以。
delete from purchase_orders
where not exists (select 1
from purchase_order_items poi
where poi.purchase_order_id = purcahse_orders.purchase_order_id
);
我有一个采购订单 table 和一个商品 table,一个采购订单可以有很多商品,但我想删除所有没有商品的采购订单。在 SQL 中可以吗?
你可以使用 not exists
.
假设您的 table 结构如下:
purchase_orders(id)
purchase_order_items(purchase_order_id)
table purchase_order_items
中的 purchase_order_id
是 table purchase_orders
中 id
的外键,看起来像:
delete from purchase_orders po
where not exists (
select 1 from purchase_order_items poi where poi.purchase_order_id = po.id
)
当然可以。
delete from purchase_orders
where not exists (select 1
from purchase_order_items poi
where poi.purchase_order_id = purcahse_orders.purchase_order_id
);