フォロワー一覧かつ自分がフォローしてるかされてるかのSQL
ハルポップ 2016-09-03 14:26:09
うまく出来なかったのでTeratailに投稿しようとSQLを整理していたらうまく出来た。
目的はTwitterのように他人のフォロワー一覧を見た時に、そのユーザー一人一人に対して自分がフォローしてるかされてるかも同時に取得する事。
テーブルは以下のような構造と仮定。
■follow_user
uid
target_uid
uidはフォローする側のユーザーID、target_uidはフォローされる側のユーザーID。
user01のフォロワーをuser02が閲覧したと仮定した場合のSQLがこれ。
select t1.uid, t2.uid, t3.target_uid from follow_user as t1 left join follow_user as t2 on t1.uid=t2.target_uid and t2.uid='user02' left join follow_user as t3 on t1.uid=t3.uid and t3.target_uid='user02' where t1.target_uid='user01';
実行時間は0.0033 secondsだったのでこれで大丈夫でしょう。
目的はTwitterのように他人のフォロワー一覧を見た時に、そのユーザー一人一人に対して自分がフォローしてるかされてるかも同時に取得する事。
テーブルは以下のような構造と仮定。
■follow_user
uid
target_uid
uidはフォローする側のユーザーID、target_uidはフォローされる側のユーザーID。
user01のフォロワーをuser02が閲覧したと仮定した場合のSQLがこれ。
select t1.uid, t2.uid, t3.target_uid from follow_user as t1 left join follow_user as t2 on t1.uid=t2.target_uid and t2.uid='user02' left join follow_user as t3 on t1.uid=t3.uid and t3.target_uid='user02' where t1.target_uid='user01';
実行時間は0.0033 secondsだったのでこれで大丈夫でしょう。