我对 SQL 有这个问题,我想不通。想象一下,我有 3 个表如下
Names
Nameid name
1 Starbucks Coffee
2 Johns Restaurant
3 Davids Restaurant
user_likes
userid Nameid
1 1
2 1
2 3
user_visited
userid Nameid
1 2
我想找到最多(喜欢+访问)的地方。我还想选择所有地方,而不仅仅是那些被喜欢或访问过的地方
我愿意:
SELECT n.nameid, n.name , COUNT(f.nameid) AS freq
FROM names AS n
LEFT JOIN user_likes ON n.nameid=user_likes.nameid
LEFT JOIN user_visited ON n.nameid=user_visited.nameid
ORDER BY freq DESC
但它并没有给我总频率。问题是,如果一个地方既被访问又被喜欢,它只计算一次,而我希望它被计算两次。有什么建议么?