我的模型的總和如下:查詢的值在許多一對多的關係
table video:
int id (PK)
int views
table tag:
int id (PK)
table video_tag:
int id (PK)
int video_id (FK to video.id)
int tag_id (FK to tag.id)
該模型描述了標記和視頻之間的許多一對多關係。視頻可以有多個標籤來描述其內容。它也有一個視圖數量的字段。同一個標籤也可以指多個視頻。
我想建立一個查詢(最好是在JPA/JPQL/HQL,但SQL也將這樣做),它返回的影片時,他們指有意見的總和下令所有標籤。
例如:兩個視頻videoA和videoB都有標籤Foo。 VideoA有2個視圖,videoB有3個視圖。排序上標記符的數量爲5
這裏使用兩個嘗試JPA:
@Query("SELECT t FROM Tag t, SUM(v.views) as viewCount FROM Video v WHERE t MEMBER OF v.tags ORDER BY viewCount DESC")
@Query("SELECT t FROM (SELECT t, SUM(v.views) as viewCount FROM Tag t, Video v WHERE t MEMBER OF v.tags) ORDER BY viewCount DESC")
嘗試使用SQL:
select t.id, sum(v.views) from tag t, video v where t.id in (select vt.tag_id from video_tag vt where vt.tag_id=t.id and vt.video_id=v.id)
Down投票,因爲它沒有顯示任何努力。只是要求。 – Shaharyar
我增加了兩次嘗試,我限制查詢JPA – Vjeetje