有两个表,一个是虚拟物品,一个是实际物品。字段是 itemcode(物品ID), name(物品名称),count(物品被购买次数)
要得到被购买次数最多 (一个物品可以被多次购买,所以可能购买次数是多个相加 ) 的物品,然后显示。
用hibernate不知如何查询。实际要求是:在这两张表中取出被购买次数最多的,不管是虚拟物品还是实际物品。只是购买次数最多就行了。 (难度更大了)如果这个不行,那就查单个表中的物品被购买次数最多的就行了。
请教大虾,忙了一下午没有解决,

解决方案 »

  1.   

    首先问一下你的表是怎么设计的,物品表中既然有count,那么这个count是做什么的呢,不是买一次就加一个么,怎么会出现“
    一个物品可以被多次购买,所以可能购买次数是多个相加”,没有主键?是流水?没见过!
      

  2.   

    count  计数的啊欢迎加入JAVA交流群 72923840
      

  3.   

    单表的还不简单
    select max(count) from 实际物品
    select max(count) from 虚拟物品如果要union的话, 
    select * from (
     select itemcode, name, max(count), 'real' from t_real 
     union
     select itemcode, name, max(count), 'virtual' from t_virtual
    )t_real表示实际物品表
    t_virtual表示虚拟物品表
      

  4.   

    表的设计不是我弄的。商城里的东西,当然不是被买了就没有了。所以有多个count,一个订单一个count啊。
    guid,itemcode(订单号),name物品名。count数量。
    、============
    select max(count) from 实际物品 
    select max(count) from 虚拟物品
    这好像不是我要的。毕竟是要查出名称来显示的。这好像只查出一个最大的。可能是我没说清楚。是排名前8位。最好是hql的,
      

  5.   

    guid,itemcode(商品ID),name物品名。count数量。====这里好像是这样的。就是一个订单对应多个商品,但这个订单里的商品(比如A只有一个购买数量,count),
    比如一个订单,其中,商品A被 买了1000,(count就是1000),而另一订单A被买了500,(count就是5000),那这个总数就是 1000+500,
    就是要得到这个总数 1500,然后选 出 排名前8位的商品,别人建的数据库,我只能照着做,配置文件全是工具生成的(写个新的方法,下次要添加一个字段什么的。重新生成配置文件的持久化类,这些又没有了。无语。)。
    数据库里挺乱的。没办法