我很新的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