我想使用squiggle-sql api使用OR条件动态构建Select fields和Where子句。 请以两个以上的字段为例。
Select field1,filed2,filed3,field4,.....
from t1,t2,t3
where t1.field1 = t2.field1 and t1.field1 = t3.field1
where t1.field=? OR t2.field3=? OR t3.field2=?
请建议。
答案 0 :(得分:1)
我刚刚发现了Squiggle。它似乎与jOOQ(我是开发人员)非常相似。在jOOQ中,你可以写(我确定Squiggle提供类似的功能)
List<Field<?>> fields = new ArrayList<Field<?>>();
fields.add(field1);
fields.add(field2);
// ... add more fields here
Condition condition = T1.field.equal(...);
condition = condition.or(T2.field3.equal(...));
condition = condition.or(T3.field2.equal(...));
// ... connect more conditions here
DSL.using(configuration)
.select(fields)
.from(t1, t2, t3)
.where(t1.field1.equal(t2.field1))
.and(t2.field1.equal(t3.field1))
.and(condition);
有关详细信息,请参阅http://www.jooq.org
答案 1 :(得分:0)
同一WHERE
的两个SELECT
会产生错误。你是说这个吗?
Select field1,filed2,filed3,field4,.....
from t1,t2,t3
where t1.field1 = t2.field1 and t1.field1 = t3.field1
AND (t1.field=? OR t2.field3=? OR t3.field2=?)