问题: 查找共同好友比较多的好友
表
friend
用户ID| 好友ID
id | uid |fuid|
1 1 3
2 1 4
3 2 5
3 2 5
uid为表user的字段
我想获得和某用户(uid) 有 共同好友(fuid) 的 list<user> 并按照共同好友的多少排序
表
friend
用户ID| 好友ID
id | uid |fuid|
1 1 3
2 1 4
3 2 5
3 2 5
uid为表user的字段
我想获得和某用户(uid) 有 共同好友(fuid) 的 list<user> 并按照共同好友的多少排序
where f.fuid in
(select fuid from friend where uid=1)
order by (select count(*) from friend where fuid in
(select fuid from friend where uid=1)) desc;
id | uid |fuid| 那么这3个字段的数据完全相同的情况是不可能存在的
2009-11-06 13:26:49,198 [http-8080-Processor20] ERROR [org.hibernate.hql.PARSER] - <AST>:0:0: unexpected AST node: query
2009-11-06 13:26:49,214 [http-8080-Processor20] ERROR [500.jsp] - unexpected AST node: query [select uid from com.guami.entity.base.Friend f where f.fuid in(select fuid from com.guami.entity.base.Friend where uid=?) order by (select count(*) from com.guami.entity.base.Friend where fuid in(select fuid from com.guami.entity.base.Friend where uid=?)) desc]
org.hibernate.hql.ast.QuerySyntaxException: unexpected AST node: query [select uid from com.guami.entity.base.Friend f where f.fuid in(select fuid from com.guami.entity.base.Friend where uid=?) order by (select count(*) from com.guami.entity.base.Friend where fuid in(select fuid from com.guami.entity.base.Friend where uid=?)) desc]
是不是hql不支持这样order by 啊
from friend a ,friend b
where a.fuid=b.fuid
and b.uid=某用户
and a.uid!=b.uid
group by b.uid
order by 2 desc
on a.fuid=b.fuid and b.uid=1 and a.uid<>b.uid
group by a.uid order by count(b.id) desc
也没有必要用 left join,