我对这个模式有一个sql问题:
table user(id, name)table page(id, name)table page_user(id_page, id_user)
一个页面可以被多个用户喜欢,一个用户可以喜欢多个页面
我想选择表中的所有用户,这些用户的列中包含与某个fixe用户相同的喜欢的页面数
比如:
id_user | page_in_common_with_user_#id#_count

最佳答案

假设“liked page”指的是page_user表,那么可以使用self join:

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;

关于mysql - SQL共同点对多关系,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35411412/

10-09 08:32