私は相互の友人のクエリを作成しようとしています。しかし、正しい結果を得るために2つのテーブルをマージする方法が不明です。相互の友人のクエリ
したがって、セッションユーザーが友人と友だちを共有している場合は、共通の友人が1つです。私が探しているのは、最善の解決策、仕事を行うための最速で最小のクエリです。
ユーザテーブル
id | first | last | username
----------------------------
友人表
id | user 1_id | user2_id | status
----------------------------------
しようとしたクエリ
$collectmutualfriends = mysqli_query($mysqli,"
SELECT
user.id,
user.first,
user.last,
user.username
FROM user
LEFT JOIN friends as friends1
ON friends1.user1_id = user.id
AND friends1.user2_id = '$user2_id'
AND friends1.status = 2
LEFT JOIN friends as friends2
ON friends2.user2_id = user.id
AND friends2.user1_id = '$user2_id'
AND friends2.status = 2
GROUP BY friends2.user2_id
");
$nummutual = mysqli_num_rows($collectmutualfriends);
if($nummutual==1){
echo"<a href='mutualfriends.php?username=".$_GET['username']."'>".$nummutual." Mutual Friend<br></a>";
}else if($nummutual>1){
echo"<a href='mutualfriends.php?username=".$_GET['username']."'>".$nummutual." Mutual Friends<br></a>";
}
UPDATE
$user1_id = $_SESSION['id'];
$user2_id = $data['id'];
$ user1_idと$ user2_idは、最初にフレンドリクエストを送信した人によって、フレンドテーブルのuser1_idまたはuser2_idのいずれかに入れることができます。
はあなたにもいくつかのサンプルデータをポストすることはできますか? –
2人のユーザーが友達である場合、テーブルフレンドに1〜2行ありますか? –
他の人はどうしますか? – Strawberry