ユーザー同士でフォローできるSNSを作っています。ユーザー A がユーザー B をフォローし、ユーザー B もユーザー A をフォローすると、友達になります。
また、一部の人気のある人 (映画スターなど) は数十万回フォローされている可能性がありますが、ユーザーは最大 1000 人をフォローできます。
下の表から、ユーザー 1 のすべての友達の ID を取得するのに最適な SQL クエリはどれでしょうか?
PS: MySQL 5.5 を使用しています。
これが私がこれまでに行ったことです:
SELECT followee_id AS friend_id FROM follow
WHERE follower_id = 1 AND
followee_id IN (SELECT follower_id FROM follow
WHERE followee_id = 1);
CREATE TABLE follow
(
follower_id INT UNSIGNED NOT NULL,
followee_id INT UNSIGNED NOT NULL,
PRIMARY KEY (follower_id, followee_id),
INDEX (followee_id, follower_id)
);