couId              couName           stuId
GQ1204001         岗前培训课程1       123
ZQ1203001           证券业务          12
ZQ1203001           证券业务           123
JS1205001           课程              123上面是表的结构,现在我想选出所有课程不要重复,但选出的课程中必须包含stuId=123的记录,即选择证券业务时优先选择stuId=123的记录,求助各位大神,这个sql语句怎么写啊?(我用的hibernate进行查询)

解决方案 »

  1.   

    select distinct * 
    from 表名
    where stidId=123
      

  2.   

    String hql = "select distinct  from 实体类 where 实体类属性 = 123 ";
      

  3.   

    select couId, couName, stuId  from 表  where stuId=123  group by couName
      

  4.   


    第一条记录stuId改成12就不行了啊。
      

  5.   


    create table mmm(couId VARCHAR(1000),couName VARCHAR(1000),stuId int);
    insert into mmm(couId,couName,stuId) values ('GQ1204001','岗前培训课程1',12);
    insert into mmm (couId,couName,stuId) values ('ZQ1203001','证券业务',12);
    insert into mmm (couId,couName,stuId) values ('ZQ1203001','证券业务',123);
    insert into mmm (couId,couName,stuId) values ('JS1205001','课程',123);
    select couId,couName ,max(stuId)  from mmm group by couId,couNamelz,看看这个是你需要的吗?
      

  6.   

    select distinct *  
    from 表名
    where stidId=123
      

  7.   


    我想到了一个更容易的方法,
    select * from mmm where stuId='123' union select * from mmm where couId not in(select couId from mmm where stuId='123')