recherche

Maison  >  Questions et réponses  >  le corps du texte

La jointure à gauche donne un résultat vide

Est-ce que j'utilise la bonne méthode de connexion ici ? Essayer de comprendre où se situe le problème dans le code. Essayez de changer les jointures intérieures, extérieures et droites, juste pour l'essayer.

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;

Structure du tableau : https://i.stack.imgur.com/nFUZO.jpg

Le résultat que j'obtiens :

Ouest 0 Nord-est 0 Sud 0 Autres 0 Midwest 0

P粉743288436P粉743288436266 Il y a quelques jours467

répondre à tous(1)je répondrai

  • P粉986937457

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

    Selon votre schéma, il semble que internal_profile_views représente un tableau M:N entre les profils utilisateur et les utilisateurs qui ont consulté ce profil.

    Dans ce cas, les lignes en internal_profile_views中具有相同的user_idviewed_user_id avec les mêmes valeurs user_id et viewed_user_id signifient que l'utilisateur consulte son propre profil, et les lignes avec des valeurs différentes signifie que l'utilisateur consulte les informations d'autres personnes.

    Dans votre déclaration de jointure, vous avez utilisé une condition dans laquelle les user_idviewed_user_id必须匹配相同的users.idenregistrements peuvent être inclus dans le résultat. Très probablement, vous avez seulement l'intention de vous inscrire sur une colonne, pas deux.

    Sur cette base, votre requête peut être l'une des suivantes :

    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;

    répondre
    0
  • Annulerrépondre