我很新的SQL,雖然我能得到周圍寫大多數查詢,我沒有在任何地方與這一個得到。我想在一個可以使用JPA執行的查詢中實現這一點。SQL選擇行只有當所有的人都符合標準
TABLE RULE:
RULE_ID ENABLED
-----------------
1 0
2 0
3 0
4 1
5 1
TABLE MISC:
MISC_ID
--------
1
2
TABLE HOLD:
HOLD_ID MISC_ID RULE_ID READY
------------------------------------
1 1 1 1
2 1 2 1
3 1 3 1
4 2 4 0
5 2 1 1
我想從HOLD僅選擇MISC_IDs其中每行具有READY = 1和RULE_ID是在(RULE_IDs其中ENABLED = 0)。在上面的例子中,查詢應該返回MISC_ID = {1},因爲HOLD_IDs 1,2和3都有READY = 1,而RULEs 1,2和3都被禁用。
MISC_ID 2不應該返回因爲HOLD_ID 4具有READY = 0。
的表MISC和HOLD擁有數百萬行的,但規則是相當小(< 1000行)。
我如何可以寫一個本地的SQL任何建議,以實現這一目標? PL/SQL不是一個選項。
這將返回MISC_ID = 2太 –
沒有也不會,它會比加入表本身(當然這取決於索引)相當快。 – cdhowie
謝謝,你能解釋一下「有分(READY)<> 0」嗎? – user1550668