2013-05-17 14 views
6

Mam podstawową tabelę obserwującą/następującą w mySQL, która wygląda następująco.Tabela stylu śledzenia na Twitterze w SQL

id  user_id  follower_id 
1   userA  userB 
2   userC  userA 
3   userA  userC 
4   userB  userC 
5   userB  userA 

Sprawdziłem te tematy, ale nie mogliśmy znaleźć to, czego potrzebuję

database design for 'followers' and 'followings'?

SQL Following and Followers

Co potrzebne jest posiadanie systemu takiego:

Załóżmy, że są userB (postępujemy zgodnie z userA, a następnie userC i userA)

Lubię zwracać wynik, który obejmuje ten obserwujący/następujący stan. Na przykład dla użytkownika B:

id  followedBy  areWeFollowing 
1   userA  1 
2   userC  0 

Dzięki za pomoc!

Arda

Odpowiedz

2

Z tego zapytania znaleźć jeśli kto postępować, za tobą też.

SELECT ff1.follower_id as followedBy, 
(
    select count(follower_id) 
    from follower_following as ff2 
    where ff2.user_id = ff1.follower_id 
    and ff2.follower_id = ff1.user_id 
) as areWeFollowing 
FROM follower_following as ff1 
where user_id = 'userB'; 
+1

Tak! To wspaniałe, bardzo dziękuję panu. PS: (Istnieje literówka "jak") – ardavar

+0

Dziękuję za poprawkę! – ajsanchez22