我试图使用jOOQ动态构建查询.到目前为止它确实很顺利,但现在我偶然发现了一个我似乎无法表达的案例.
Select alias.*,otherAlias.aColumn as aAlias From table as alias inner join otherTable as otherAlias on alias.someColumn = otherAlias.someOtherColumn Where otherAlias.someOtherColumn in (????????)
我的问题是我似乎无法表达我需要它的SELECT部分.如果我只是使用:
.select() -> I get select * .select(alias.fields()) -> I get Select * .select((alias.fields() :+ field(name(otherAlias,aColumn)).as(aAlias)):_*) -> I get Select otherAlias.aColumn as aAlias
有没有办法用jOOQ表达这个?
声明的其余部分似乎按预期工作.我现在在Scala中使用jOOQ 3.10.7并且目标是Postgres,我的声明目前看起来像这样:
sql .select() .from(alias) .innerJoin(otherAlias) .on(field(name(alias,someColumn)).eq(field(name(otherAlias,someOtherColumn)))) .where(condition)
非常感谢.
更新:我找到了一种方法来表达这种似乎通过回退到纯sql的方式.但我仍然想知道是否有更好的方式来表达这一点.这作为选择:
.select((field(""""Alias".*"""),field(name(otherAlias,aColumn)).as(aAlias)):_*) -> I get Select "Alias".*,otherAlias.aColumn as aAlias