0

ユーザーが他のユーザーとつながることができるプラットフォーム(ソーシャルプラットフォーム)を構築しています

friendsというテーブルがあり、このような接続を保存しています

user_id  |   friend_id  |   request   |   add_date

ここで、特定のユーザーの友達が追加した最新の友達を取得するために、SQL クエリを作成する必要があります。また、ユーザーを受け入れる必要があります。

それをニュースフィードと考えてください。私は、最近友達が誰を追加したかを確認するためのものでした (最近追加された新しい人は、私の友達であるかどうかはわかりません)。

これまでのところ、私はこれを持っていますが、友人が私がすでに持っている人を追加した場合にのみ機能します。

SELECT user_main_id AS frmname, friend_id AS type_id, add_date AS date
FROM friends 
WHERE friend_id 
IN 
(SELECT friend_id 
FROM friends WHERE (friend_id='$user_id' OR user_main_id='$user_id') 
AND request=1 AND friend_id!=$user_id) 
AND request=1 AND friend_id!=$user_id AND user_main_id!=$user_id
ORDER BY date DESC  

たぶん、これにアプローチするより良い理由があります。

提案?どうもありがとうございました。接続は双方向であり、user_id と friend_id に違いはありません。それらの名前で設計され、引き継がれなければなりませんでした。

サンプルレコード

96618   50683   1   2013-05-08 13:44:31
96618   1230    1   2013-04-03 18:28:51
11671   96618   1   2013-04-03 13:26:51
11671   1230    1   2013-03-23 18:26:08

96618 が 50683 と接続すると、発生します。たとえば、ユーザー 11671 は、あなたの友人 96618 が 50683 と友人になったことを示すメッセージを受け取ります。

4

1 に答える 1