我有一个SQLite3数据库与我需要通过几个因素过滤的表。一旦这样的因素是根据同一个表内的其他行的内容来过滤我们的行。嵌套的SQL查询与自加入 - 如何筛选行OUT
从我研究过,自己JOIN
将被要求,但我不知道我会怎么做,以过滤表的几个因素。
下面是数据的一个示例表:
Name Part # Status Amount
---------------------------------
Item 1 12345 New $100.00
Item 2 12345 New $15.00
Item 3 35864 Old $132.56
Item 4 12345 Old $15.00
我需要做的是找到任何Item
S作相同Part #
,其中一人有一个“老” Status
和Amount
是相同。
因此,首先我们得到所有具有Part #
“12345”的行,然后检查是否有任何行具有匹配Amount
的“旧”状态。在这个例子中,我们会有Item2
和Item4
。
现在需要做的是返回表格中具有“新”Status
的行的REST,基本上丢弃这两个项目。
所需的输出:
Name Part # Status Amount
---------------------------------
Item 1 12345 New $100.00
删除了所有“老”的状态行,并且有一个匹配的“零件编号”和“量”与“旧”状态的任何“新”。(对不起,我知道这很混乱,因此我需要帮助)。
我已经研究了以下资源,试图自己弄清楚这一点,但有很多层次让我感到困惑。
涉及同一表中的列进行比较的前两个链路。第三个似乎是一个非常相似的问题,但没有可读的答案(对我来说,无论如何)。
我也在做Java开发,这样做会很简单,但如果可能的话,我希望单个SQL查询(嵌套)。
你可以提供一个样本预期产出以澄清你希望发生的事情? – yanman1234
在你的例子中你想要项目3?它没有“新”记录,但它确实有旧的记录。你似乎并没有指出“删除所有”OLD“状态行以及任何与之相匹配的新行为......”@ p1erstef有很好的回应IMO它肯定是occam剃须刀的答案:P – xQbert
换句话说......想你想看所有新零件的旧名称没有相应的价格和零件号。 – xQbert