如何解决从一个表中检索数据,取决于 PostgresSql 中的另一个表数据
我在桌子上工作。我有三个表名 StockInfos, TransferInfos, 和 TransferInfoDetails
下面给出了这些表的图像视图。
股票信息
传输信息
转移信息详情
现在,场景是,
-
我为产品 1 和 产品 2 从公司 1 到公司 2 进行了交易.因此,一个 TransferInfo 是由
Id = 1
创建的,而两个 TransferInfoDetails 是由Id = 1
和Id = 2
创建的。 TransferInfoDetails 都包含TransferInfoId = 1
作为TransferInfoId
是一个Foreign Key
。 TransferInfoDetails 相应地包含ProductId = 1
和ProductId = 2
。 -
然后,我从公司 2 到 公司 1 进行了另一笔仅针对 产品 2 的交易。 因此,另一个 TransferInfo 由
Id = 2
创建,一个 TransferInfoDetails 由Id = 3
创建,TransferInfoDetail 包含 {{ 1}}。
现在,如果我想删除第一次传输信息,这是不允许的,因为它的一个产品(产品 2)出现在另一个传输信息中,该信息是在第一次传输信息之后创建的。因此,用户必须先删除上次传输信息,然后再删除传输信息。因此,条件是,如果创建了转移信息,其详细信息包含已出现在先前转移信息详细信息中的任何产品 ID,则无法删除先前转移信息。
在这个例子中
现在,虽然我想检索 TransferInfos 的列表,但我想根据 TransferInfoDetails 中的 Product 获得一个名为 ProductId = 2
的标志。意味着,如果 TransferInfoDetails 中的任何一个 Product Of TransferInfoDetails 出现在当前传输之后创建的另一个横断面中,则 IsDeletable
标志将设置为 IsDeletable
,否则为 NO
。
那么,如何在 Posgres 函数中使用 Postgressql 实现它???
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。