搜索orders表中的时间为最大值的记录,用HQL语句怎么写,数据库是mysql的,
我这样写错了:from Orders order where order.dealdate in(select max(order.dealdate) from orders) and order.username=?

解决方案 »

  1.   

    不用函数一样可以实现 先按时间倒序排列 再选出第一条 呵呵from Orders order where order.username=? order by order.dealdate desc limit to 1 
      

  2.   

    from Orders order where order.dealdate in(select max(t.dealdate) from Orders t) and order.username=?
      

  3.   

    楼主代码我就不写了。。只说思路:
    首先 你让order 这个表按 倒序排列 不就行了。。这样 时间 最大的不就是在最上面嘛???limit  要他干什么???
    不就是限制查询前 几条的数据的么??这样一来 楼主明白了么???
      

  4.   

    from Orders order where order.dealdate in(select max(order.dealdate) from orders) and order.username=? 本身这句有就有问题 
    1。lz将orders 别名 order  order 是MySQL(数据库)的关键字 不能用 在检查语法的时候 应该就不能通过
    2。直接就是用 order by 排序 使用正序、倒序 你先在mysql的客户端查询 就知道了
    3。lz应该要有一个习惯 你的sql语句应该是在客户端先去运行 在写到代码里这个 可以减少你的很多时间
    4。推荐一个mysql的客户端MySQL-Front 这个不错 主要是因为我们用MS-SQL比较多 这个就比较好用吧
      

  5.   

     Hibernate中hql语句是针对于对象的,炸一看,没错,再一看,就发现问题了,你按2楼(cjphp)那位老兄的改,就是对的
    from Orders order where order.dealdate in(select max(t.dealdate) from Orders t) and order.username=?