-4

mysqlにaccount_followという名前のテーブルがあります。

フォロワーとフォローポイントはユーザーIDを指します。

フォロワーフィールドがユーザーを意味するフォローフィールドを指す場合、特定のIDを持つ人をフォローする場合、フォロワーがフォローする場合、フォローするポイントをフォローする場合、つまりフォロワーとフォローの間は友情です。私の問題は、このアーキテクチャでフォロワーの友達(フォロワーフィールド)を選択するにはどうすればよいですか?たとえば、フォロワーを選択して友達を取得したいのですが、クエリで可能ですか?または私はこれをphpで解決する必要があります(私は使用すべきではありません)?

ここに画像の説明を入力してください

例 :

  • 1と2は友達です。
  • 2は1に続きましたが、友達ではありません。
  • 1と3は友達です。
4

1 に答える 1

1

私はあなたの質問を正しく理解したと思います...

とにかく、ユーザーIDで「フォロー」されたコンマ区切りのリストを取得できます。ユーザーIDに基づいてクエリを実行していると思います。

FollowedList = Convert(varchar(50),replace( 
  (SELECT distinct followed as [data()] 
  FROM account_follow a
  WHERE a.follower = b.user_id
  ORDER BY follower_id for xml path ('') ), ' ', ',') )

これはサブクエリです。したがって、このテーブルをメインテーブルと結合するメインクエリでFollowedListを選択します。これは、このクエリでは「b」と呼ばれます。

リストが非常に長くなる場合は、varchar(50)以上のものに変換する必要があります。

于 2013-03-14T19:50:07.723 に答える