SQL計數許多一對多的關係,我有一個SQL問題,此模式:共同
table user(id, name) table page(id, name) table page_user(id_page, id_user)
一個頁面可以由多個用戶喜愛,一個用戶可以像多頁
我想選擇在我的表中的所有用戶與共同喜歡網頁的一些定勢用戶 數列,如: id_user | page_in_common_with_user_#id#_count
SQL計數許多一對多的關係,我有一個SQL問題,此模式:共同
table user(id, name) table page(id, name) table page_user(id_page, id_user)
一個頁面可以由多個用戶喜愛,一個用戶可以像多頁
我想選擇在我的表中的所有用戶與共同喜歡網頁的一些定勢用戶 數列,如: id_user | page_in_common_with_user_#id#_count
假設「喜歡頁」是指page_user
表,那麼你可以使用一個自聯接:
select pu.id_user, count(pux.id_page) as PagesInCommonWithX
from page_user pu left join
page_user pux
on pu.id_page = pux.id_page and
pux.id_user = $x
group by pu.id_user;
你可以很容易地做到這一點此查詢:
select id_user , count(id_page)
from user left outer join page_user on user.id = page_user.id_user
group by id_user
這只是顯示的用戶已喜歡的頁數。 –