Rumah  >  Soal Jawab  >  teks badan

Hasil gabungan kiri dalam hasil kosong

Adakah saya menggunakan kaedah sambungan yang betul di sini? Cuba mencari di mana masalahnya dalam kod. Cuba tukar cantuman dalam, luar dan kanan, hanya untuk mencubanya.

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;

Struktur jadual: https://i.stack.imgur.com/nFUZO.jpg

Keluaran yang saya dapat:

Barat 0 Timur Laut 0 Selatan 0 Lain-lain 0 Midwest 0

P粉743288436P粉743288436200 hari yang lalu396

membalas semua(1)saya akan balas

  • P粉986937457

    P粉9869374572024-04-02 17:42:02

    Bergantung pada skema anda, nampaknya internal_profile_views mewakili jadual M:N antara profil pengguna dan pengguna yang melihat profil tersebut.

    Dalam kes ini, baris dalam internal_profile_views中具有相同的user_idviewed_user_id dengan nilai user_id dan viewed_user_id bermakna pengguna sedang melihat profil mereka sendiri dan baris dengan nilai yang berbeza bermakna pengguna sedang melihat maklumat Orang lain.

    Dalam penyata penyertaan anda, anda menggunakan syarat di mana user_idviewed_user_id必须匹配相同的users.idrekod boleh dimasukkan ke dalam keputusan. Kemungkinan besar anda hanya berniat untuk menyertai satu lajur, bukan dua.

    Berdasarkan ini, pertanyaan anda mungkin salah satu daripada yang berikut:

    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;

    balas
    0
  • Batalbalas