Ich versuche, eine gegenseitige Freunde-Abfrage zu erstellen. Aber ich bin mir nicht sicher, wie man zwei Tabellen zusammenführt, um das richtige Ergebnis zu erhalten.Gegenseitige Freunde Abfrage
Wenn also der Sitzungsbenutzer einen Freund mit seinem Freund hat, ist der gemeinsame Freund einer. Was ich suche, ist die beste Lösung, schnellste und kleinste Abfrage, um die Aufgabe zu erledigen.
Benutzertabelle
id | first | last | username
----------------------------
Freunde Tisch
id | user 1_id | user2_id | status
----------------------------------
Versuchte Abfrage
$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 und $ user2_id können entweder in user1_id oder user2_id in der freunde-Tabelle sein, abhängig davon, wer zuerst die Freundschaftsanfrage gesendet hat.
Können Sie einige Beispieldaten als auch schreiben? –
Wenn 2 Benutzer Freunde sind, haben Sie 1 oder 2 Zeilen in der Tabelle Freund? –
Was machen alle anderen? – Strawberry