Ошибка SQL Server: каждое выражение GROUP BY должно содержать хотя бы один столбец, который не является внешней ссылкой - PullRequest
0 голосов
/ 11 октября 2019

Может кто-нибудь сказать мне, что я здесь не так делаю? То, что я пытаюсь сделать, это то, что я хочу получить информацию о людях, за которыми следуют люди, которые следуют за человеком, который, как я полагаю, следует за ним. Здесь 1003 - это идентификатор пользователя, за которым я уже слежу, а 1001 - мой идентификатор пользователя

SELECT USERID,
       USERNAME,
       PHOTO,
       COUNT(FOLLOWER)
FROM   USERS
       LEFT JOIN FOLLOW
              ON USERS.userid = Follow.following
WHERE  USERID IN (SELECT FOLLOWING
                  FROM   FOLLOW
                  WHERE  FOLLOWER IN (SELECT FOLLOWER
                                      FROM   FOLLOW
                                      WHERE  FOLLOWING = 1003)
                  GROUP  BY USERID,
                            USERNAME,
                            PHOTO
                  EXCEPT
                  (SELECT FOLLOWING
                   FROM   FOLLOW
                   WHERE  FOLLOWING = 1003
                           OR FOLLOWER = 1001)) 

1 Ответ

0 голосов
/ 11 октября 2019

вам просто нужно снова присоединиться к таблице FOLLOW в качестве другого набора ваших последователей 1001 и вашего друга 1003.

SELECT USERID, USERNAME, PHOTO, COUNT(f1.FOLLOWER) 
FROM USERS 
LEFT JOIN FOLLOW ON USERS.userid = Follow.following 
LEFT JOIN FOLLOW as f1 ON f1.following = Follow.following and f1.FOLLOWING IN (1001, 1003)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...