私はあなたが誰かをフォローしたり、彼らと友達になったりできるソーシャルネットワークを作成しています。表示できるデータは、ユーザーとの関係の種類によって異なります。現在、2つのテーブルを使用できます。投稿と関係。
投稿:
| user_id | post_id | story |
-----------------------------
| 1 | 1 | text. |
-----------------------------
関係:
| rel_id | user_1 | user_2| status |
--------------------------------------
| 1 | 1 | 2 | 3 |
--------------------------------------
ユーザーテーブルもありますが、ここでは重要ではないと思います。つまり、基本的には、友達やフォローしているユーザーからの投稿をすべて選択したいと思います。User_2は常に関係の受信者です。数字の1、2、3は、関係の「ステータス」を表します。1は受信者をフォローしている、3は友達、4は受信者をフォローしている(唯一の違いは、保留中の友達リクエストもあることです)。SELECT QUERYを設定しましたが、正しく機能していません。
$query=" SELECT * FROM posts LEFT JOIN relationships ON (posts.user_id=
relationships.user_2 AND relationships.user_1 = $user_id AND relationships.status = 4
OR 3 OR 1)";
これまでにすべての投稿を2回選択します。何故ですか?投稿を投稿しているユーザーが私と関係があり、ステータスが1、3、または4の投稿のみを選択したいのですが、何が間違っているのでしょうか。これを行う他の方法は何ですか?
前もって感謝します!