关于hql的复杂查询

Macrossduowan 2011-05-16 11:47:04
我有个产品表叫product,还有个供货商表,叫sub,产品表对供货商是一对多,现在我在页面遍历所有产品的同时,想把供货商表里id最大的并且“中标”的供货商里的属性:采购价 也显示到页面上,请问大家怎么使用hql语句查询?
表结构:
product:id,name,供货商的集合:subs
sub:id,product,price,是否中标
页面要遍历的是:所有product,字段是:
id 产品名 供货商价格



求求各位想想办法,谢谢大家。
...全文
218 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
yingzhuo2011 2011-05-16
  • 打赏
  • 举报
回复
select distinct Sub as s from Product as p where p.is = :is order by s.id desc

然后分页取得第一跳记录。

你看看这样行不行。 我假设你的"是否中标"的field叫is
Macrossduowan 2011-05-16
  • 打赏
  • 举报
回复
没有人吗?!!!
Macrossduowan 2011-05-16
  • 打赏
  • 举报
回复
上边那句sql总报"not a GROUP BY expression"的错,这是怎么回事?
Macrossduowan 2011-05-16
  • 打赏
  • 举报
回复
我上边那个剧sql语句应该如何改啊?!!!
fangext520 2011-05-16
  • 打赏
  • 举报
回复
有点小麻烦。。。
Macrossduowan 2011-05-16
  • 打赏
  • 举报
回复
那应该在select中怎么写呢?
y_0715 2011-05-16
  • 打赏
  • 举报
回复
应用group by 在select中的字段都必须是函数!不然就会报错
Macrossduowan 2011-05-16
  • 打赏
  • 举报
回复
select a.pid,a.pname,a.price,a.sid from (select product.pid,product.pname,sub.sid,sub.price from product,sub where product.pid=sub.pid order by sub.sid desc)a group by a.pid这样写为什么会报错?
说是group by用得不对?
Macrossduowan 2011-05-16
  • 打赏
  • 举报
回复
不行,上边那个语句还是运行不了。。。
Macrossduowan 2011-05-16
  • 打赏
  • 举报
回复
哦,谢谢大家,因为产品名称是唯一的,所以估计就不用加distinct了吧?
WSGPFMMY 2011-05-16
  • 打赏
  • 举报
回复
1对多 是否加上right join更好点! “distinct ” 效率低吧 加入10W条 查询某产品要在这10W个里面检索一遍 。
yingzhuo2011 2011-05-16
  • 打赏
  • 举报
回复
select distinct Sub as s from Product as p where p.is = :is order by s.id desc

遍历的是产品表呀 。
Macrossduowan 2011-05-16
  • 打赏
  • 举报
回复
那。。。。。怎么写?
yingzhuo2011 2011-05-16
  • 打赏
  • 举报
回复
嗯哼!
Macrossduowan 2011-05-16
  • 打赏
  • 举报
回复
谢谢,但是如果有一件商品没人投标的话,那件商品不就不会显示出来了么?我觉得遍历还是得from产品表吧?

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧