こんにちは、2 つのテーブルがPAS_User
ありPAS_Follow
、下の図を参照してください。
私が苦労しているのは、MySQL のクエリです。ユーザーは、関係 ID が相互に関係している他のユーザーのリストしか表示できません。
相互 (Mutual) の場合、PAS_Follow
テーブルにレコードを記録する必要があるため、id を持つユーザーがいて、テーブル1
の id を持つユーザーには、2
行 1 を含む 2 行のデータが含まれるとします。
flow_follower_user_id = 1 && flow_followed_user_id = 2
行2は
flow_follower_user_id = 2 && flow_followed_user_id = 1
このクエリがありますが、ソース ユーザーをフォローしていないユーザーが表示されているようです。
SELECT DISTINCT PAS_Follow.folw_followed_user_id AS user_user_id, PAS_User.user_first_name, PAS_User.user_last_name, PAS_User.user_avatar_url, PAS_User.user_sector, PAS_User.user_job_type, PAS_User.user_pass_token FROM PAS_User RIGHT OUTER JOIN PAS_Follow ON PAS_User.user_user_id = PAS_Follow.folw_followed_user_id WHERE `folw_followed_user_id` =**:id** OR `folw_follower_user_id` =**:id** AND `folw_deleted` = 0 ORDER BY PAS_Follow.folw_followed_user_id ASC
この例**:id**
では = 1 です。
これはダイレクト メッセージ プラットフォーム用であるため、ユーザーがユーザーのリストを開始するときに、相互関係を持つユーザーのみが表示されることが重要です。
問題の説明が十分に完了していることを願っています。
**** 以下からの回答 ****
これが他の誰かに役立つことを願っています
SELECT foll_second.folw_follower_user_id AS user_user_id, user.user_first_name, user.user_last_name, user.user_avatar_url, user.user_job_type FROM PAS_Follow foll_first, PAS_Follow foll_second, PAS_User user WHERE foll_first.folw_follower_user_id = foll_second.folw_followed_user_id AND foll_second.folw_follower_user_id = foll_first.folw_followed_user_id AND foll_first.folw_follower_user_id =:id AND foll_second.folw_follower_user_id = USER .user_user_id