hql 自连接 self left join
我有一张表table ,字段为dtget,an,vph
可能会有这么一条数据
dtget an vph
2012 11.21 15
这条数据vph代表pH值,为15是非法的,但an是有效的,我想保留这条数据,但不输出15
我用hibernate查询数据
select model.dtget as dtget, model1.an as an, model2.vph as vph
from table t1 left join table t2 left join table t3
where t1.dtget = t2.dtget and t1.dtget = t3.dtget and (t3.vph between 0 and 14)
这样使用left join是错误的
该怎么解决?
或者有其他方法可以满足我的需求?
------解决方案--------------------额 好吧 忘了这是hql了 你可以写成这种格式
select b from A a left join a.b b where 1=1 ...
------解决方案--------------------刚sql写错了,CASE判断少了个AND
SELECT
t.dtget , t.an , (CASE WHEN t.vpn >=0 AND t.vph <= 14 THEN t.vph ELSE null END ) as
vpn
FROM
table t
WHERE
t.vph between 0 and 15
WHERE 条件你自己看情况是不是要去掉