A和B表是一对多双向关系,现在根据A的一个属性和B的一个属性来查询A,但是出现重复值,用SET去过滤但是顺序就乱了,怎么办呢?谢谢我的SQL如下
select B.A from B where B.name='xx' and B.A.dept='pp'

解决方案 »

  1.   

      加discount,就可以去除重复的了
      

  2.   


    select distinct(B.A) from B where B.name='xx' and B.A.dept='pp'报错啊
      

  3.   

    select B.A distinct from B where B.name='xx' and B.A.dept='pp' 
      

  4.   


     2009-09-22 16:03:48,796 ERROR [org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/fwzl].[default]] - <Servlet.service() for servlet default threw exception>
     java.lang.NoSuchMethodError: org.hibernate.hql.antlr.HqlBaseParser.recover(Lantlr/RecognitionException;Lantlr/collections/impl/BitSet;)V
    at org.hibernate.hql.antlr.HqlBaseParser.atom(HqlBaseParser.java:3549)
    at org.hibernate.hql.antlr.HqlBaseParser.unaryExpression(HqlBaseParser.java:3216)
    at org.hibernate.hql.antlr.HqlBaseParser.multiplyExpression(HqlBaseParser.java:3098)
    at org.hibernate.hql.antlr.HqlBaseParser.additiveExpression(HqlBaseParser.java:2818)
    at org.hibernate.hql.antlr.HqlBaseParser.concatenation(HqlBaseParser.java:570)
      

  5.   

     unexpected token: distinct
      

  6.   

    是不是外键集合里面要去除重复,你用query的List()的方法返回的就是去重复的了,另外要重写eques()方法
      

  7.   

    晕啊,这不是sql语句,你这是hql
      

  8.   

    select distinct B.A from B where B.name='xx' and B.A.dept='pp'
      

  9.   

    楼上几位,我用的是HIBERNATE 的HQL,不是普通SQL
      

  10.   

    用链接查询  左或者又
    第二个 如果你用set过滤 再使用一个类去排序就可以了  Compler
      

  11.   

    晕,那是什么查询语句啊, hql  还是sql  
    结合体吗?
      

  12.   

    楼上几位说的 DISTINCT 可以用了,只是我的HQL
    select distinct B.A from B where B.name='xx' and B.A.dept='pp' order by B.A.id desc请问下,这用情况怎么用order by 呢?上面的HQL报<ORA-01791: not a SELECTed expression> 这个错误,因为我SELECT的是实体 A 排序确实实体的一个属性。