我有这个架构的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
答案 0 :(得分:2)
假设"喜欢页面"引用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;
答案 1 :(得分:-1)
您可以通过此查询轻松完成此操作:
select id_user , count(id_page)
from user left outer join page_user on user.id = page_user.id_user
group by id_user