select distinct gl
from GeneralLedger as gl left join gl.accountCredit as credit left join gl.accountDebit as debit
where gl.glCategory = :GLCategory
and debit.accountNumber = :ACCOUNTS or credit.accountNumber= :ACCOUNTS
order by gl.transactionNumber asc
以上是hibernate的hql:
在这里有三个表:gl,debit,credit. debit和credit跟gl表都有关联关系
我想查出在debit或credit的accountNUmber = "1001" 且 gl表中glCategory = "abc"的数据
但是按照上面的语句查的话,得到的结果不满足glCategory = "abc",即有些glCategory 不是“abc”的数据也被查出来了。
from GeneralLedger as gl left join gl.accountCredit as credit left join gl.accountDebit as debit
where gl.glCategory = :GLCategory
and debit.accountNumber = :ACCOUNTS or credit.accountNumber= :ACCOUNTS
order by gl.transactionNumber asc
以上是hibernate的hql:
在这里有三个表:gl,debit,credit. debit和credit跟gl表都有关联关系
我想查出在debit或credit的accountNUmber = "1001" 且 gl表中glCategory = "abc"的数据
但是按照上面的语句查的话,得到的结果不满足glCategory = "abc",即有些glCategory 不是“abc”的数据也被查出来了。
所以and (debit.accountNumber = :ACCOUNTS or credit.accountNumber= :ACCOUNTS)
or两边应该加上括弧。