如何解决如何从关联表中删除条目,需要从另外两个表中查找
背景:
- 列表项asset_table包含列{asset_tag,asset_id}
- 列表项目合同表具有列{contract_number,contract_id}
- 列表项asset_contract表具有列{contract_id,asset_id}
问题: 我有一个asset_tag以及要添加的合同编号列表和要删除的合同编号列表。
现在我执行以下操作:
解决方法
如果要删除,一个可移植的选项使用exists
delete from asset_contract
where exists (select 1 from asset a where a.asset_id = asset_contract.asset_id and a.asset_tag = ?)
and exists (select 1 from contract c where c.contract_id = asset_contract.contract_id and c.contract_number = ?)
对于insert
,您可以这样做:
insert into asset_contract (contract_id,asset_id)
select c.contract_id,a.asset_id
from asset a
cross join contract c
where a.asset_tag = ? and c.contract_number = ?
问号代表查询的参数(资产标签和合同编号)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。