Verwende ich hier die richtige Verbindungsmethode? Ich versuche herauszufinden, wo im Code das Problem liegt. Versuchen Sie, die inneren, äußeren und rechten Verbindungen zu ändern, um es auszuprobieren.
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;
Tabellenstruktur: https://i.stack.imgur.com/nFUZO.jpg
Die Ausgabe, die ich bekomme:
West 0 Nordost 0 Süden 0 Andere 0 Mittlerer Westen 0
根据你的架构,看起来
internal_profile_views
表示用户资料和查看该资料的用户之间的M:N表。在这种情况下,
internal_profile_views
中具有相同的user_id
和viewed_user_id
值的行表示用户正在查看自己的资料,具有不同值的行表示用户正在查看其他人的资料。在你的连接语句中,你使用了一个条件,其中
user_id
和viewed_user_id
必须匹配相同的users.id
记录才能包含在结果中。很可能你只打算在一个列上进行连接,而不是两个。在此基础上,你的查询可能是以下之一: