我需要帮助这个mysql语句。我希望它选择我朋友的所有朋友,我不是朋友。现在,这只是选择我所有的朋友'朋友们,即使我是那个人的朋友。结果是这样的:
我的朋友 - 鲍勃,乔。推荐朋友 - 吉姆,乔恩,鲍勃
鲍勃不应该出现在建议的好友列表中,因为他在我的列表中。我可以使用高级mysql语句执行此操作,还是需要执行其他操作?谢谢!
我当前的sql代码:
SELECT * FROM friendlist WHERE addby='$user'
完整代码:
$user = $_SESSION['username'];
$find = mysqli_query($con, "SELECT * FROM friendlist WHERE addby='$user'");
while($row = mysqli_fetch_assoc($find)){
$friend = $row['username'];
$q = mysqli_query($con, "SELECT * FROM friendlist WHERE addby='$friend'");
while($row2 = mysqli_fetch_assoc($q)){
if(!isset($list)){
$list = "";
}
$list .= "<a href='profile.php?u=" . $row2['username'] . "'>" . $row2['username'] . "</a><br>";
}
echo "<a href='profile.php?u=" . $row['username'] . "'>" . $row['username'] . "</a> <br>";
}
echo $list;
答案 0 :(得分:2)
如果我能正确理解您的需求和表格结构, 应该为您提供您正在寻找的结果。如果您没有为您做这些结构,有关您的结构的更多细节可能会有所帮助。
SELECT * FROM friendlist WHERE addby = '$friend' AND id NOT IN (SELECT id FROM friendlist WHERE addby = '$user');
您可能需要更改&#39; id&#39;列到表中的任何工作(主键,大概)。这可以通过过滤掉应该返回所有用户朋友列表的select子查询的结果,再次假设我理解你的表结构。