先有2张表
用户表Users: 用户id
文章表 Articles : 文章id 文章阅读量readNum1, 根据 用户发表的文章数量 给用户排序
比如 用户1 发表2篇文章
用户2 发表3篇文章
用户3发表1篇文章
排序结果为(高到低) 用户2 用户1 用户3
这个查询方式 我已经写出:
//下面三行,一下3个句子都能得到正确结果, ht 为hibernateTemplate对象
//List<Users> list = ht.find("from Users u order by u.articles.size");
//List<Users> list = ht.find("from Users u order by size(u.articles)");
//List<Users> list = ht.find("select distinct u from Users as u inner join u.articles as art order by u.articles.size ");先请教一查询语句 写法和上面的相似2 高扭矩 用户发表的文章数量的总的阅读量给用户进行排序
例如: 用户1 发表 3 篇文章 每篇阅读量为10 总阅读量30
用户2 发表 5篇文章 每篇阅读量为 7 总阅读量 35
用户3 发表1 篇文章 阅读量为100 总阅读量100
从高到低 排序应为 用户3 用户2 用户1 请教 这一 hql 语句的写法数据库 hql 数据库 hql数据库hql
用户表Users: 用户id
文章表 Articles : 文章id 文章阅读量readNum1, 根据 用户发表的文章数量 给用户排序
比如 用户1 发表2篇文章
用户2 发表3篇文章
用户3发表1篇文章
排序结果为(高到低) 用户2 用户1 用户3
这个查询方式 我已经写出:
//下面三行,一下3个句子都能得到正确结果, ht 为hibernateTemplate对象
//List<Users> list = ht.find("from Users u order by u.articles.size");
//List<Users> list = ht.find("from Users u order by size(u.articles)");
//List<Users> list = ht.find("select distinct u from Users as u inner join u.articles as art order by u.articles.size ");先请教一查询语句 写法和上面的相似2 高扭矩 用户发表的文章数量的总的阅读量给用户进行排序
例如: 用户1 发表 3 篇文章 每篇阅读量为10 总阅读量30
用户2 发表 5篇文章 每篇阅读量为 7 总阅读量 35
用户3 发表1 篇文章 阅读量为100 总阅读量100
从高到低 排序应为 用户3 用户2 用户1 请教 这一 hql 语句的写法数据库 hql 数据库 hql数据库hql
+ user.getUserId()+ "order by readNum desc";
Query query = this.getHibernateTemplate().getSessionFactory()
.getCurrentSession().createQuery(hql);
List<Long> list = query.list();
Query query = this.getHibernateTemplate().getSessionFactory()
.getCurrentSession().createQuery(hql);
List<Long> list = query.list();
String hql = "select sum(a.readNum) from (select readNum from Article) a order by a.readNum desc";
Query query = this.getHibernateTemplate().getSessionFactory()
.getCurrentSession().createQuery(hql);
List<Long> list = query.list();
我写出来了 灰常感谢你..分也给你..
这样的
List<Users> list = ht.find("select art.users from Article as art group by art.users.id order by sum(art.readNum) desc ");