作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
是否可以在 JPQL 中执行与此 sql 查询等效的操作?
SELECT *
FROM COUNTRIES c WHERE COUNTRY_ID IN (
SELECT DISTINCT COUNTRY_ID
FROM PORTS p
WHERE p.COUNTRY_ID = c.COUNTRY_ID AND STATE = 'A'
)
最佳答案
您需要使用 IN 对其进行测试和 subquery因为两者都在 JPQL 中工作(根据语法引用,它们确实一起工作)。你也可以看看MEMBER OF expressions .
但我认为有更好的方法。此类查询称为相关子查询,可以随时使用 EXISTS 重写它们:
SELECT * FROM COUNTRIES c WHERE
EXISTS (
SELECT 'found' FROM PORTS p
WHERE p.COUNTRY_ID = c.COUNTRY_ID AND STATE = 'A'
)
JPQL 支持 EXISTS with subqueries .
关于java - 如何进行 JPQL 子查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3629259/
我是一名优秀的程序员,十分优秀!