對於標題感到抱歉,我找不到我的問題的簡稱或描述。自定義MySql查詢
表-A:每一行是一個用戶請求(ID,...,狀態)
表-B:在表-A每個請求可以具有在表-B 1個或更多的行作爲用於請求子部分(ID,REQUEST_ID, ....,狀態)
我的系統用cron處理Table_B中的行,同時運行多個cron。 cron在完成時將Table_B中的狀態設置爲3(完成)。
現在我需要知道每個請求(Table_A)的所有子節(Table_B行)何時完成,以便我可以更新Table_A中的狀態。
我現在正在做的是在Table_A(TOP 1)中選擇第一個請求,然後獲取Table_B中所有子節點的狀態,並檢查它們是否都具有狀態== 3,這有效,但我希望能夠通過單個查詢來完成此操作,而不需要檢查代碼中的值。
事情是這樣的:
select the request_id's
from Table_B where **all the rows** with this request_id has status=3
任何想法?任何幫助表示讚賞。
tnx這似乎是工作,使用這樣的查詢會對性能有多大影響?考慮一個具有100,000行以上的表格 – Exlord
如果表格已正確編制索引,它應該執行OK。你可以用你的實際數據來嘗試它,並告訴我們它的表現如何。或者,您可以嘗試使用「NOT EXISTS」並查看它的比較結果。 –
'having'在我的小測試表中看起來要快得多,它花費了0.0005秒,其中'DREXIST'查詢由@DRapp在同一張表上用子查詢寫入'0.0476秒'。但我認爲我應該用更大的表格做另一項測試。 – Exlord