0

テーブル - 友達

    friend_id     | friend_one    | friend_two   | role 
+--------------------------------------------------------------------------------------------+
|1:    44               34              34          me
|2:    45               35              35          me
|3:    46               35              34          fri
+--------------------------------------------------------------------------------------------+

誰がフォローしていて、誰がフォロワーなのかを数える必要があります。これで終わりです。以下にいくつかの回答を得ましたが、ほとんどは静的な数字を提供するだけですが、これまでの助けに感謝します。開始する場所を与えてくれました.

4

1 に答える 1

0

あなたは単にこれを望んでいるようです:

select friend_one, count(*) as count
from friends
where friend_one != friend_two -- fyi such rows shouldn't exist
group by friend_one;

特定のユーザーのカウントが必要な場合は、次のようにします。

select count(*) as count
from friends
where friend_one != friend_two -- fyi such rows shouldn't exist
and friend_one = $uid

に関する私のコメントfriend_one != friend_twoは、ユーザーごとに「自動セルフフレンド」エントリがあるように見えるためです。これは値を追加しないため、私見では悪い考えです。そのような行がないことを検討してください。

于 2012-12-08T18:52:56.293 に答える