php mysql 过滤重复记录并排序 10

table1idname1a2b3ctable2idnamecont1aaa2bbb3aaaaaSELECT*,count(distincttable2.name)FRO... table1
id name
1 a
2 b
3 c

table2
id name cont
1 a aa
2 b bb
3 a aaaa

SELECT *,count(distinct table2.name) FROM table1,table2 WHERE table1.name = table2.name GROUP BY table2.name ORDER BY table2.id DESC";

重复的记录是过滤掉了,现在问题是我要的是table2中重复的name=a的ID最大的cont=aaaa的内容。
每次读出来的都是name=a ,cont=aa的内容。。。
$sqlcha ="SELECT *,count(distinct crm_followinfo.FOL_Comname) FROM crm_customers,crm_followinfo WHERE crm_customers.CUS_Comname = crm_followinfo.FOL_Comname GROUP BY crm_followinfo.FOL_Comname ORDER BY FOL_Id DESC";

$query_limit_Recordset1 = sprintf("%s LIMIT %d, %d", $sqlcha, $startRow_Recordset1, $maxRows_Recordset1);
$connn = mysql_query($query_limit_Recordset1, $conn) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($connn);

在这个表crm_followinfo 有个FOL_Id字段 , 如何除掉重复后,显示最大的FOL_Id的这条记录呢?
展开
 我来答
扭杏q
2011-06-07 · TA获得超过295个赞
知道小有建树答主
回答量:614
采纳率:100%
帮助的人:398万
展开全部

select name,desc,count(desc) as c from tmp_table group by name,desc order by c desc limit 9;
把name放在前面就是优先给name排序,name一样的就按后面的desc排序。
这个句子就能满足你的要求。
3.以count(desc)的多少排列name;
不知道这句话什么意思。不过对你想要的结果没有什么影响。

另外,列名不要用desc。desc 是数据库中的一个关键字。原则上最好不要用来做列名。
------------------------补充-----------------------

满足你的第三个条件也很容易,
group by name,desc 变成
group by name,count(desc)就可以了
柴沛文00K
2011-06-07 · TA获得超过635个赞
知道小有建树答主
回答量:1203
采纳率:0%
帮助的人:196万
展开全部
select name, max(cont) as cont
into #temp2
from @table2
group by name

SELECT *
FROM @table1 a, #temp2 b
WHERE a.name = b.name
ORDER BY b.cont desc, b.name DESC
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式