2

フォロワーを保存するテーブルと、友情を保存する別のテーブルがあります。これで、ストリーム データを保存する 3 番目のテーブルができました。

それはソーシャルネットワークであり、多くの理由があるため、フォロワーと友情のために1つのテーブルを持ちたくありません(Facebookのサブスクリプション/友達を意味します)

誰かがストリームテーブルをクエリして、友達とフォローの両方のアクティビティを選択する方法を提示できますか?

どんな助けでも本当に感謝します、ありがとう

これは単純なデータベース スキームです。実際にはそうではありませんが、ほぼ同じです。

さて、ここにデータベーステーブルのスキーマがあります。

フォロワー表。Row_ID User_ID following_User_ID

フレンド テーブル Row_ID User_ID Friend_ID

ストリーム テーブル Row_ID User_ID Contents_ID 時間タイプ

4

1 に答える 1

1

あなたが探しているものは、おそらく2つの異なる結果セットとして行うのが最善です...または2つの結合です。

Select "friend" as src, author, post from friends f inner join streams s on s.author = f.id
union
Select "follower" as src, author, post from followers f inner join streams s on s.author = f.id

これは単なる疑似コーディングですが、どのように進めればよいかがわかります。データベース スキーマを知らなくても、これが私が提供できる最善の方法です。

編集:

これはあなたが探しているものかもしれません

select user_id, contents_id, time from (
    select user_id, contents_id, time
    from followers f inner join stream s on s.user_id = f.user_id and f.user_id = "username"
union
    select user_id, contents_id, time
    from friends f inner join stream s on s.user_id = f.user_id and f.user_id = "username"
) order by time desc

これにより、降順で時間順にデータが返されます。

于 2012-07-21T00:09:28.907 に答える