アクティビティ (アクティビティ) のリストを取得し、左結合を使用してアクティビティを作成したユーザー データ (ユーザー) を取得しています。私のアプリケーション内で、ユーザーは相互にフォローすることができます。
これは私の現在のクエリで、自分が投稿していないすべてのアクティビティを取得します ($user_id)
SELECT
activities.id, activities.user_id, users.id, users.name
FROM
activities
LEFT JOIN
users on activities.user_id = users.id
WHERE
users.id != $user_id
アクティビティとユーザーのテーブルとは別に、アプリケーションにはフォロワーと呼ばれる別のテーブルがあります。
followers
id | user_id_1 | user_id_2 | followed_back
1 1 3 1
2 2 3 0
3 3 1 1
あなた ($user_id) が各アクティビティに参加している特定のユーザーをフォローしているかどうかを確認する必要があります。おそらく、この新しいフィールドを true/false/null 値を表す「user_followed」と呼びますか?
たとえば、私は user_id = 1 です。上記の表に基づくと、これは私が user_id 3 をフォローしたことを意味します。アクティビティがフェッチされ、user_id 3 が参加/担当している場合、新しいフィールド「user_followed」は true になります。
したがって、別の SELECT クエリを組み込んで、ユーザーがフォローされているかどうかを確認する必要があると思います。
(SELECT
*
FROM
followers
WHERE
user_id_1 = $user_id AND user_id_2 = users.id
)
これを最初のクエリに組み込み、はいまたはいいえを表す新しいフィールドを作成する方法がほとんどわかりません。どんな助けでも大歓迎です!