[英]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.