想问下,Join怎么用的。
比如说,有两个表,a和b
表a
id   b_id表b
id   desc如果我想查询a对象,以及对应b表中的desc
应该怎么查呢?
可不可以像这样查:
select a,b.desc from a left join b where b.id = a.b_id
求高手指点

解决方案 »

  1.   

    我的意思好像说的有点模糊
    我就是说在
    session.creatQuery("select a,b.desc from a left join b where b.id = a.b_id")
    中能不能这样写。
      

  2.   

    本帖最后由 java2000_net 于 2009-04-28 14:14:13 编辑
      

  3.   

    哎呀,这个代码是我胡编的啦,只是为了说明问题,这个绝对跟属性名称没有关系,我就像的a里面没有b属性的情况下,能不能用Join 连接两个表进行查询,如果可以,那么查询的格式是什么
      

  4.   

    前天看到一篇文章,就是专门讲hql语句的,里面也有对join的例子,楼主不妨可以看看!http://hi.baidu.com/%B6%AC%CC%ECd%BB%D8%D2%E4/blog/item/2ae1a700c64f3205728da52f.html
      

  5.   


    谢谢4楼,可是你有没有发现,此文中但凡用到join的,都是类似于这样写的 select ... from a left join(or other mode) a.b as b where ... 这表明凡是Join的表都是from 后面那个表的一个属性。能不能在b表不是a表的属性的情况下,用Join连接两个表呢?
      

  6.   

    可以用中间表。在a表的映射文件中写条属性对应一个中间表,用这个中间进行操作。
    当然也是用join的。
      

  7.   

    好麻烦啊,用select a ,(select b.desc from b where b.id = a.b_id) from a
    这样是不是简单一点