我在這裡使用的連接方式正確嗎?試圖找出程式碼中的問題在哪裡。嘗試更改內部、外部和右連接,只是為了試試。
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
記錄才能包含在結果中。很可能你只打算在一個列上進行連接,而不是兩個。在此基礎上,你的查詢可能是以下其中之一: