Php 按计数排序未正确排序记录?
我正在使用MySQL。我有两张桌子我附上了两张桌子的图片?当我应用ORDER by Count时,查询从数据库检索结果,但没有正确排序,我不知道我做错了什么?我在stack overflow中搜索了一些类似的问题,但仍然面临相同的问题。 我试过这些,但没有成功Php 按计数排序未正确排序记录?,php,mysql,database,Php,Mysql,Database,我正在使用MySQL。我有两张桌子我附上了两张桌子的图片?当我应用ORDER by Count时,查询从数据库检索结果,但没有正确排序,我不知道我做错了什么?我在stack overflow中搜索了一些类似的问题,但仍然面临相同的问题。 我试过这些,但没有成功 $sql = "Select * from gr_groups"; $result = $db->select($sql); for($j = 0; $j < count($result);
$sql = "Select * from gr_groups";
$result = $db->select($sql);
for($j = 0; $j < count($result); $j++)
{
$mygrp_id = $result[$j]['id'];
$query = "Select * from gr_group_memberships where group_id =".$mygrp_id." ORDER BY COUNT(receiver_id) DESC";
$exec_query = $db->select($query);
echo $exec_query[0]['group_id'];
}
$sql=“从gr_组中选择*”;
$result=$db->select($sql);
对于($j=0;$jselect($query);
echo$exec_query[0]['group_id'];
}
提前谢谢?仅限
ORDER BY receiver_id DESC
这将解决问题
更新
试着加入他们-
SELECT * FROM gr_groups g
LEFT JOIN gr_group_memberships gm on gm.group_id = g.id
ORDER BY COUNT(gm.receiver_id) DESC
这将获取所有成员资格按计数排序的组。请尝试以下操作
$query = "Select * from gr_group_memberships where group_id = ".$mygrp_id." ORDER BY receiver_id DESC";
您可以按顺序点菜,但这样会更好
SELECT *,count(receiver_id) as total_receivers
FROM gr_group_memberships
WHERE group_id =".$mygrp_id."
GROUP BY receiver_id
ORDER BY receiver_id DESC;
请尝试以下查询:
$query = "Select a.* from gr_group_memberships a
join( select receiver_id,count(receiver_id) as count1
from gr_group_memberships group by receiver_id) b on
a.receiver_id=b.receiver_id where a.group_id =".$mygrp_id."
ORDER BY count1 DESC";
试试这个
SELECT count(receiver_id) as total_receiver FROM gr_group_memberships
INNER JOIN gr_group on gr_group_memberships.group_id = gr_group.id
GROUP BY gr_group_memberships.receiver_id
ORDER BY gr_group_memberships.receiver_id DESC
我想它会起到你想要的作用@b0s3我必须命令在顶部有更多成员的组,出于这个原因,我正在计算成员的数量,然后根据您想要的
gr_group_memberships
对组进行排序,以首先显示具有最高receiver_id
的行?是的,假设在gr_group_成员身份中,一个组有5个receiver_id,另一个组有4个,那么我希望5个位于顶部?Ohk。那么您就错了。@b0s3正确的方法是什么?只取最高的一个而不是另一个?最高的一个而不是其他??五个组,id为25的组有三个成员,第二个组有两个成员,其余三个组各有一个成员。我想安排的是这个订单,25,22,24,21…那么你现在得到了什么?我只有25个,拥有最多的会员。你可以通过接收者来尝试这个订单。我厌倦了这个,所以我的大脑停止工作了?当我直接将这个查询粘贴到sql查询窗口时,它工作了,但当我将它集成到php代码时,它不工作?当我们打印total_receiver时,它给出了3,1,1,这是正确的,但是当我们打印group_id时,它给出了25,25,25。你能将它集成到我的php代码中吗?因为我们按receiver_id
数一数。但是receiver\u id
不等于group\u id
。这就是为什么“group_id”没有正确显示的原因:(让我们看看。