左連接導致結果為空
P粉743288436
P粉743288436 2024-04-02 00:27:45
0
1
461

我在這裡使用的連接方式正確嗎?試圖找出程式碼中的問題在哪裡。嘗試更改內部、外部和右連接,只是為了試試。

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

P粉743288436
P粉743288436

全部回覆(1)
P粉986937457

根據你的架構,看起來internal_profile_views表示使用者資料查看該資料的使用者之間的M:N表。

在這種情況下,internal_profile_views中具有相同的user_idviewed_user_id值的行表示使用者正在查看自己的資料,具有不同值的行表示用戶正在查看其他人的資料。

在你的連接語句中,你使用了一個條件,其中user_idviewed_user_id必須匹配相同的users.id記錄才能包含在結果中。很可能你只打算在一個列上進行連接,而不是兩個。

在此基礎上,你的查詢可能是以下其中之一:

SELECT viewer.region as Viewer_Region, count(views.user_id) as Unique_Viewers
FROM internal_profile_views views
INNER JOIN users viewer ON views.user_id = viewer.id
GROUP BY viewer.region;
SELECT profileOwner.region as Profile_Region, count(views.user_id) as Unique_Viewers
FROM internal_profile_views views
INNER JOIN users profileOwner ON views.viewed_user_id = profileOwner.Id
INNER JOIN users viewer ON views.user_id = viewer.id
GROUP BY users.region;
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板