在JPQL中转换NOT IN SELECT查询

问题描述

SELECT TI
 FROM
    Timpot TI 
 WHERE 
    TI.idImpot not in 
 (select TREG.TImpot.idImpot from Tri1342 TRED where TRED.etatRgltImpot='ANNULE' ) 

我在JPQL中有此请求,但它不起作用,我认为这是由于not in select子句引起的,我想要一些解释。谢谢

解决方法

您可以使用效率更高的NOT EXISTS子句,如下所示:

SELECT TI
FROM Timpot TI 
WHERE NOT EXISTS(
    SELECT 1 FROM Tri1342 TRED 
    WHERE TRED.etatRgltImpot='ANNULE' AND TRED.TImport.idImpot = TI.idImport
)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...