[英]CakePHP: Filter search on one table based on values from another table
[英]Filter mysql table based on values from another table
我這里有 2 個表, STOCK (ID, CODE)
和SALES (ID, CODE, STATUS)
。 我想通過使用 SALES 表中的某些條件來過濾 STOCK 表的值。
例如,如果我們有這些值
庫存表:
A1
A2
A3
A4
A5
並在
銷售表:
A1 - Sold
A2 - Returned
A3 - Assigned
A2 - Sold
A4 - Returned
結果應該是:
A4
A5
應從結果中刪除狀態為 SOLD 和 ASSIGNED 的項目。 SALES 表中狀態為 RETURNED 的項目和 STOCK 表中尚未使用的項目應可用於輸入。
我嘗試了以下代碼,但問題是,一旦將已退貨商品重新輸入到 SALES 表中,並顯示 Status Sold或Assigned ,它仍然會進入結果。
SELECT t1.CODE
FROM STOCK t1
LEFT JOIN SALES t2 ON t2.CODE = t1.CODE
WHERE (t2.CODE IS NULL OR (t2.STATUS <> 'Sold' AND t2.STATUS <> 'Assigned'));
請幫我解決這個問題。
根據您的條件,以下查詢返回您的預期結果:
SELECT S1.CODE
FROM STOCK S1
LEFT JOIN (
SELECT t1.CODE
FROM STOCK t1
JOIN SALES t2 ON t2.CODE = t1.CODE
WHERE t2.STATUS IN ('Sold', 'Assigned')) S2 ON S2.CODE = S1.CODE
WHERE S2.CODE IS NULL;
請使用給定的示例數據找到相同的LIVE DEMO
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.