“按所选表排序”字段来自其他表字段、hibernate或简单sql
我有三张桌子。我的桌子是空的“按所选表排序”字段来自其他表字段、hibernate或简单sql,sql,oracle,hibernate,Sql,Oracle,Hibernate,我有三张桌子。我的桌子是空的 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,
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”和“按产品订购”详细信息值所在的产品
解决方法应该是目标,洗发水
我尝试了很多东西,但是我没有得到我想要的
我正在使用jsf,hibernate,我无法编写hibernate查询,因为我仍然无法使用sql,有人能帮我编写sql脚本或hibernate脚本吗。试试这个:
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
在与
prod\u id=1
对应的prod\u details
表中,有3行具有不同的值。在这种情况下,顺序应考虑哪个值
。最后一个值是定义表中的3个平均值。(3,1,3,3)定义表中的第一个字段“id”第二个“product_id”第三个“total”,最后一个是具体的值,最后一个是哪个顺序?是max(id)
还是max(value)
还是min(id)
还是min(value)
应该按max(value)排序对不起,误会了,你有什么意见吗?我怎么用hibernate实现它?对不起,伙计,我对hibernate一无所知,这是给oracle的。
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;