0
我想要獲取組中某個目錄中包含的文件大小的總和。 但是,由於從聯接返回的行數,大小正在倍增。我的查詢中還包含其他表以獲取歷史信息。我有一個PostgreSQL數據庫,我在我的存儲庫接口中使用了一個hibernate查詢。Hibernate中使用多個連接的不同總和
在線,它說我需要子查詢我的聚合。不過,我需要加入所有這些表格才能獲得與用戶相關的目錄相關的文件。我怎樣才能做出明顯的總和?表之間
@Query(value = "select a.username as name, sum(d.filesize) as size"
+ "from usergroup a "
+ "join a.nuser b "
+ "join b.directory c "
+ "join c.files d "
+ "join b.nuserhistory e"
+ "group by a.name"
+ "having count(e) > b.maxCount")
關係:
- 許多用戶組許多nusers。
- 許多導演對一個nuser。
- 許多文件到一個目錄。
- 許多歷史對一個nuser。
什麼是'join.b.history e'?看起來像一個錯字。此外,所有連接條件都缺失,'group'和'user'是保留字,不能用作不引號的標識符。請提供有效的語法來處理。 – 2014-12-03 17:48:15
對不起,我試圖簡化我的查詢的語法,以更清楚地顯示我遇到的問題,我也必須更改一些模型名稱。 – Sarah92 2014-12-03 17:59:59
加入條件仍然缺失。這些對於答案是必不可少的。此外,人們必須知道你的關係設計(表格定義),以瞭解乘法發生的位置。這裏有一個解釋相關的答案:http://stackoverflow.com/questions/12464037/two-sql-left-joins-produce-incorrect-result/12464135#12464135 – 2014-12-03 18:34:19