Php Mysql查询:如何获取向我的特定用户发送状态为1的消息的用户数?
我对MySql查询有一个问题(对我来说很复杂) 好的,下面是我需要做的: 首先,我需要检查一些特定用户收到的消息Php Mysql查询:如何获取向我的特定用户发送状态为1的消息的用户数?,php,mysql,Php,Mysql,我对MySql查询有一个问题(对我来说很复杂) 好的,下面是我需要做的: 首先,我需要检查一些特定用户收到的消息 $mid=$_SESSION['user']; $stat1=mysql_query("SELECT id, fromid, toid, subject FROM messages WHERE toid = '".$mid."' AND subject != 'not readed' GROUP BY fromid ") or die(mysql_error()); while
$mid=$_SESSION['user'];
$stat1=mysql_query("SELECT id, fromid, toid, subject FROM messages WHERE
toid = '".$mid."' AND subject != 'not readed' GROUP BY fromid ")
or die(mysql_error());
while ($h = mysql_fetch_array($stat1))
{
$whosend=$h['fromid'];
我需要做的第二件事是检查向我的特定用户(“toid”)发送消息(“fromid”)的用户(是否已删除)的状态。我必须从另一个表中执行此操作:
$stat2=mysql_query("SELECT id, status FROM members WHERE id='".$whosend."' AND
status ='1'")or die(mysql_error());
while ($s = mysql_fetch_array($stat))
{
然后我的问题开始显现出来
如何获取向状态为1的特定用户发送消息的用户数?不是消息的数量,而是发送消息的用户总数
有没有更简单的方法来执行此查询?我试过像这样的连接表
$stat=mysql_query("SELECT memebers.id, memebers.status, messages.toid,
messages.fromid,messages.subject,messages.id FROM members, messages
WHERE messages.toid='".$mid."' AND members.status ='7' ....
但即使在此查询中,我也需要在此查询之前发送消息的用户的id,以便在此联接表之前有另一个查询。那么您正在查找发送此其他成员($mid)消息的状态为1的成员数 像这样的
$sql = "select count(distinct messages.fromid) From messages Inner Join members on members.id = messages.fromid Where messages.toid = '" . $mid . "' AND members.`status` = 1";
不能正确,因为您的GROUP BY formid和select子句中没有聚合。请发布您的数据库结构,这将有助于感谢Aeron!我还有一个问题。如何为每个发送消息的用户列出最近收到的消息?
SELECT id, fromid, toid, subject FROM messages WHERE toid = '".$mid."' AND subject != 'not readed' GROUP BY fromid