2017-05-08 13 views
1

我想選擇只是特定權限組的一部分的權限。他們在關係表中放在一起。我試圖這樣做的方式是通過在子查詢中使用WHERE EXISTS。其中存在SQL無法正常工作 - H2 Db

select * 
from permissions 
where exists (select 'x' 
       from rel_sets_permission 
       where pset_id = :id); 

的問題是,它似乎是,如果有在關係表中的ID中的至少一個出現時,我會得到作爲主查詢的所有權限的結果。 我需要建議,因爲我查閱了WHERE EXISTS的邏輯,其目的應該是我使用它的情況。 我正在使用H2數據庫。

+1

的東西,你需要在子查詢中的相關條款。如果不知道表格是什麼樣子,很難提出進一步的建議。 –

+1

@GordonLinoff Well權限有很多屬性,而關係表只有自己的代理id,權限id和權限Set id。 – Tacker529

+1

'select a,b,c from X where X存在(從Y選擇1 WHERE Y.p = X.d);' – wildplasser

回答

0

問題的答案如註釋中所述。除了子查詢之外,還添加了一個關聯子句。

形式

WHERE rel_sets_permission.pset_id = permissions.id