Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“按所选表排序”字段来自其他表字段、hibernate或简单sql_Sql_Oracle_Hibernate - Fatal编程技术网

“按所选表排序”字段来自其他表字段、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;