2017-10-04 149 views
0

我對nHibernate和HQL相當新,但是使用文檔我確信可以在select語句中進行子查詢。select語句中的HQL子查詢

試圖執行這個查詢:

SELECT DISTINCT a.ID, (SELECT COUNT(accHld.ID) FROM AccountHolder accHld 
    WHERE a.ID = accHld.Account) FROM Account a GROUP BY a.ID 

我獲得的是「在SELECT子句HQL功能之前預期‘(’」

我試圖在組中添加子查詢的功能好了,沒有用我不知道是否有人知道我在做什麼錯

回答

0

你只是不需要一個子查詢,但左外連接:

SELECT DISTINCT a.ID, COUNT(accHld.ID) 
FROM Account a 
LEFT OUTER JOIN AccountHolder accHld ON a.ID = accHld.Account 
GROUP BY a.ID 
+0

謝謝您的評論,唯一的問題是,除了賬戶之外,我還需要加入另一個名爲「payments」的類以及賬戶持有人。我遇到的問題是,它們都映射回Accounts類,所以即使在使用不同的時候,我也會得到重複的信息。無論如何會有這個嗎? –

+0

我沒有收到它,你想加入賬戶,付款和AccountHolders來獲取哪個表的哪些屬性? – Aldeguer

+0

對不起,好吧,我有3個enities。付款,賬戶持有人和賬戶。付款和帳戶都有一個映射到帳戶。使用HQL,使用Account.ID和Payments和AccountHolders中的外鍵加入兩者,並選擇數據,返回dublicates。 –