私は SQL にまったく慣れていないため、ほとんどのクエリを作成することはできますが、このクエリではうまくいきません。JPAを使用して実行できる単一のクエリでこれを実現したいと考えています。
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 から、各行に READY=1 があり、RULE_ID が入っている MISC_ID (ENABLED=0 の RULE_ID) のみを選択したいと考えています。上記の例では、HOLD_ID 1、2、および 3 はすべて READY=1 であり、RULE 1、2、および 3 はすべて無効になっているため、クエリは MISC_ID = {1} を返す必要があります。
HOLD_ID 4 は READY=0 であるため、MISC_ID 2 は返されません。
表 MISC および HOLD には数百万行ありますが、RULE はかなり小さい (<1000 行)。
これを実現するためにネイティブ SQL を作成する方法について何か提案はありますか? PL/SQL はオプションではありません。