从其他表字段,hibernate或简单sql中选择的表字段排序

时间:2014-11-20 07:11:28

标签: sql oracle hibernate

我有3张桌子。我的桌子是

PRODUCT ( pro_id, name , api )
Definition ( def_id, name )
Product_details ( id, pro_id, def_id, value )

pro_id和def_id是表product和definiton的外键。

我的表记录就像这样

Product ( 1, Goal , A01 ) , ( 2 Shampoo, A01 ) , ( 3, Cell, A02 )
Definition ( 1, Effect ) , ( 2, Satisfaction ) , ( 3, total )
Product_details ( 1, 1, 1, 5 ) , ( 2, 1 , 2, 1 ), ( 3, 1, 3, 3 ) ( 4, 2, 3, 2 )

我想选择API =" A01"并按product_details值排序

解决方案应该是目标,洗发水。

我尝试了很多东西但是,我无法得到我想要的东西,

我正在使用jsf,hibernate,我不能写hibernate查询因为我仍然无法用sql做,有人可以帮我解决sql脚本或者hibernate脚本。

2 个答案:

答案 0 :(得分:0)

试试这个:

SELECT p.name
FROM   Product p
       JOIN (SELECT pro_id,
                    Max(value) AS value
             FROM   Product_details
             GROUP  BY pro_id) pd
         ON p.pro_id = pd.pro_id
ORDER  BY pd.value 

答案 1 :(得分:0)

select pr.pro_id,pr.name,pr.api 
from 
(select pro_id,name,api from product) pr,
(select pro_id,max(value) from product_details
group by pro_id) pd
where pd.pro_id=pr.pro_id;