如何使用SQL NOT IN()从mysql表中获取独占的记录列表

3
我正在尝试获取所有收到过会话用户消息(至少一条)的用户列表,同时排除那些没有收到过消息的用户。
但是我的代码只排除了一个用户,尽管还有更多用户符合这个条件。
以下是我的代码:
$SQL="select *from message where senderID="$sender"; $result=mysqli_query($link,$SQL);$totalRows=mysqli_num_rows($result);if($totalRows<>0){for($i=0;$i<$totalRows;  $I){$resultData[$i]=mysqli_fetch _array($result);
    }for($i=0;$i<$totalRows;  $I){$receiverID=$resultData[$i]['receiver_id'];
    $select="select *from users where memberID NOT IN($receiverID)";}  }

请问,我如何实现这个目标?


请验证您的代码。我尝试格式化它以使其可读。但是,看起来您错过了一个闭合}。 - Todd Palmer
根据"mysqli_query"的外观,我删除了vb.net标签并添加了php标签。请注意,在此网站上使代码显示为代码,您可以在一行开头加上四个空格-如果您编辑问题以改善代码的外观可能会有所帮助。 - Andrew Morton
1个回答

0

你可以在一个SQL查询中完成所有操作:

$SQL = "SELECT * FROM users WHERE memberID NOT IN (SELECT receiver_id FROM message WHERE senderID = '$sender')";

我对PHP没有任何了解,但是您需要查阅其文档以正确使用for循环来检索数据。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接