メッセージ、ユーザー、友達の 3 つのテーブルがあります。
Messages: msg_id, uid_fk, message, alert, created, uploads, owner
Users: uid, first_name, last_name
Friends: friend_one, friend_one
ユーザーが別のユーザーと友達になると、次の方法でそのユーザーの uid を記録します。friend_one: 58 friend_two: 172 以下のコードは完全に機能し、ユーザーのすべてのメッセージ更新を選択します。私の問題は、ユーザー自身だけでなく、友人のメッセージもすべて選択する必要があることです。
上記のように、以下はユーザーのステータス更新のみを選択します。ユーザーのステータス更新だけでなく、それを使用している友人も選択するのに何時間も苦労しています。
$query = $db->prepare("SELECT M.msg_id, M.uid_fk, M.message, M.alert,
M.created, M.uploads , M.owner , U.uid , U.first_name , U.last_name FROM
messages M, users U WHERE M.uid_fk=U.uid and M.uid_fk= :uid_fk limit 10");
$query->execute(array(':uid_fk' => $uid));
($uid はログインしているユーザーのセッション ID です)
また、念のために友達を選択するための私のコード:
$friends_sql = $db->prepare("SELECT a.first_name, a.uid, a.last_name FROM users
a, friends b WHERE a.uid = b.friend_two AND b.friend_one = :friend_one ORDER BY
b.friend_id DESC LIMIT 8");
$friends_sql->execute(array(':friend_one' => $uid));