gpt4 book ai didi

sql - 递归sql问题

转载 作者:行者123 更新时间:2023-12-04 10:59:34 27 4
gpt4 key购买 nike

我有一个问题,希望通过 SQL 查询解决。这将
用作 PoC(概念证明)。

问题:

产品供应由一个或多个产品实例组成,一个产品
实例可以属于许多产品。
这可以在表格中实现:

PO | PI

-----

A | 10

A | 11

A | 12

B | 10

B | 11

C | 13

现在我想从一组产品实例中取回产品报价。
例如。如果我们发送 10,11,13 返回的预期结果是 B & C,如果我们发送
只有 10 那么结果应该是 NULL 因为没有产品供应是由
只有 10。发送 10、11、12 将导致 A(不是 A 和 B,因为 12 本身不是有效的产品报价)。

先决条件:
发送的产品实例组合只能产生一个特定的
产品组合,因此每个查询只有一种解决方案。

最佳答案

好吧,我想我有。这符合您提供的限制条件。可能有一种方法可以进一步简化这一点,但它有点吃我的大脑:

select distinct PO 
from POPI x
where
PO not in (
select PO
from POPI
where PI not in (10,11,12)
)
and PI not in (
select PI
from POPI
where PO != x.PO
and PO not in (
select PO
from POPI
where PI not in (10,11,12)
)
);

这只会产生填充给定集合的结果,这些结果与所有其他结果不相交,我 是你所要求的。对于给出的测试示例:
  • 提供 10,11,12 yield A
  • 提供 10,11,13 yield B,C
  • 关于sql - 递归sql问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/378040/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com