我有一個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