如何查询?(sql/jpql)
我需要创建一个查询,但它很难(至少对我来说) 我的产品存储在db中,每个产品都属于一个工厂。如何查询?(sql/jpql),sql,spring-data-jpa,Sql,Spring Data Jpa,我需要创建一个查询,但它很难(至少对我来说) 我的产品存储在db中,每个产品都属于一个工厂。 每个工厂只能同时生产一种自己的产品。 每个产品都有一个编号,表示其在工厂队列中的订单。 每个产品都有一个字段,如果其工厂已开始处理该字段,则该字段为数字;如果该产品在队列中,则该字段为空 查询必须返回产品列表,其中包含每个工厂队列中的第一个产品,但前提是工厂当前未处理任何产品。 请参见以下示例: 给定: Id FactoryId Working Order Product1
每个工厂只能同时生产一种自己的产品。
每个产品都有一个编号,表示其在工厂队列中的订单。
每个产品都有一个字段,如果其工厂已开始处理该字段,则该字段为数字;如果该产品在队列中,则该字段为空 查询必须返回产品列表,其中包含每个工厂队列中的第一个产品,但前提是工厂当前未处理任何产品。 请参见以下示例: 给定:
Id FactoryId Working Order
Product1 Factory1 4654 1
Product2 Factory2 9841 3
Product3 Factory2 NULL 6
Product4 Factory3 NULL 4
Product5 Factory3 NULL 7
Product6 Factory4 NULL 2
Product7 Factory4 3211 9
product8 Factory5 NULL 10
product9 Factory5 NULL 5
product10 Factory5 NULL 13
Id FactoryId Working Order
Product4 Factory3 NULL 4
product9 Factory5 NULL 5
结果:
Id FactoryId Working Order
Product1 Factory1 4654 1
Product2 Factory2 9841 3
Product3 Factory2 NULL 6
Product4 Factory3 NULL 4
Product5 Factory3 NULL 7
Product6 Factory4 NULL 2
Product7 Factory4 3211 9
product8 Factory5 NULL 10
product9 Factory5 NULL 5
product10 Factory5 NULL 13
Id FactoryId Working Order
Product4 Factory3 NULL 4
product9 Factory5 NULL 5
我使用Spring数据JpaRepository。您可以将
不存在
与相关子查询一起使用:
select t.*
from table t
where not exists (select 1
from table t1
where t1.FactoryId = t.FactoryId and
t1.working is not null) and
Order = (select min(t1.order)
from table t1
where t1.FactoryId = t.FactoryId
);
我需要一些时间将它翻译成jpql,但它可以工作。谢谢