String hql="select [color=#FF00FF]sb.subjectname,sb.subjectid  from Schedule sh, Grade g,Subject sb where sh.gradeid = g.gradeid and sb.subjectid=sh.subjectid and g.gradeid=:gid";[/color]上边写的有错误:根据年级(gradeid)来查询 该年级 有什么课程(subject) 如果看不清上面的 查询语句,几个多表查询的例子也可以。谢谢!

解决方案 »

  1.   

    http://till.javaeye.com/blog/39614
    看下他的例题把
      

  2.   

    如果年级和课程有主外键关系,根本不用写hql就可以搞定了。
      

  3.   

    //没看清我说下HQL//
    HQL="from Schedule as schedule where schedule.grade.id=schedule.subject.id"
    (schedule象是一个Schedule 实列,里面有grade属性) 
    subject也是schedule类的一个属性,subject自己有个ID属性
      

  4.   

    谢谢大家。我说的清楚一点:
    有三个表:grade(年级)subject(科目)schedule(课程)
    下面是表中的字段
    grade:   gradeid    gradename
    subject: subjectid  subjectname
    schedule:scheduleid subjectid   gradeid想根据年级编号,查处该年级有哪些科目,谢谢!
      

  5.   

    HQL 连接查询 
    第一:连接对象
    第二:连接属性
      

  6.   

    select subjectname from grade,subject,schedule where grade.gradeid=schedule.scheduleid and schedule.shcedule.id=subject.subjectid and gradename='一年级';
    这是sql;hql 是将所有的表转换为bean,也就是对象,字段转换为bean的属性
      

  7.   

    这个hql 写的完全错误,这个肯定要用join 连接查询了.