Detta borde göra det:
SELECT COUNT(me.A) FROM social AS me
INNER JOIN social AS you ON me.B = you.A
WHERE me.A = you.B AND me.A = 1
Ta bort COUNT om du vill ha en lista med vänner.
REDIGERA
Som begärt, en förklaring.
Du är JOIN skapa en tabell för sig själv eftersom du är intresserad av relationerna mellan rader.
Jag bestämde mig för att kalla tabellerna me och you för att göra relationen tydlig. Vad det säger är den där kolumnen A kan referera till mig som följaren eller du som följare. Kolumn B hänvisar till följaren
Om du skulle byta namn på kolumnerna skulle frågan läsas tydligare
om A -> follower och B -> follower , vi skulle ha:
SELECT COUNT(me.follower) FROM social AS me
INNER JOIN social AS you ON me.followee = you.follower
WHERE me.follower = you.followee AND me.follower = 1
Så man säger, ta två kopior av den här tabellen och JOIN raderna där följaren i me är följare i you . Filtrera sedan och visa bara raderna där följaren i me är efterföljaren i you ... där genom att fånga din önskan att ha (A == B) && (B == A)
Tabellaliasen kanske inte är så bra, men jag hoppas att det förtydligar lite.
ANDRA REDIGERING Enligt kommentarerna nedan kan en tydligare form vara:
SELECT COUNT(me.A) FROM social AS me
INNER JOIN social AS you ON me.A = you.B AND me.B = you.A
WHERE me.A = 1