我在这里使用的连接方式正确吗?试图找出代码中的问题在哪里。尝试更改内部、外部和右连接,只是为了试试。
SELECT users.region, count(internal_profile_views.user_id) from users Left JOIN internal_profile_views ON users.id = internal_profile_views.user_id AND users.id = internal_profile_views.viewed_user_id GROUP BY users.region;
表结构:https://i.stack.imgur.com/nFUZO.jpg
我得到的输出结果:
西0 东北 0 南 0 其他 0 中西部0
根据你的架构,看起来
internal_profile_views
表示用户资料和查看该资料的用户之间的M:N表。在这种情况下,
internal_profile_views
中具有相同的user_id
和viewed_user_id
值的行表示用户正在查看自己的资料,具有不同值的行表示用户正在查看其他人的资料。在你的连接语句中,你使用了一个条件,其中
user_id
和viewed_user_id
必须匹配相同的users.id
记录才能包含在结果中。很可能你只打算在一个列上进行连接,而不是两个。在此基础上,你的查询可能是以下之一: