簡體   English   中英

Mysql查詢:如何獲取向狀態為= 1的特定用戶發送消息的用戶數?

[英]Mysql query: How can I get the number of the users who sent messages to my specific user with status =1?

我對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 ($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,以便在此聯接表之前還會有另一個查詢。

因此,您是否正在尋找狀態= 1的成員發送了此其他成員($ mid)消息?

像這樣嗎

$sql = "select count(distinct messages.fromid) From messages Inner Join members on members.id = messages.fromid Where messages.toid = '" . $mid . "' AND members.`status` = 1";
SELECT id, fromid, toid, subject FROM messages WHERE toid = '".$mid."'  AND subject != 'not readed' GROUP BY fromid 

不能正確,因為您有GROUP BY formid,並且select子句中沒有聚合。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM