gpt4 book ai didi

java - 如何进行 JPQL 子查询?

转载 作者:IT老高 更新时间:2023-10-28 20:40:27 57 4
gpt4 key购买 nike

是否可以在 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/

57 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com