sql – 如何用jOOQ表达“选择别名.*,otherAlias.Column From ..
发布时间:2020-12-12 07:06:32 所属栏目:MsSql教程 来源:网络整理
导读:我试图使用jOOQ动态构建查询.到目前为止它确实很顺利,但现在我偶然发现了一个我似乎无法表达的案例. 这是我想要生成的查询的简化版本: Select alias.*,otherAlias.aColumn as aAlias From table as aliasinner join otherTable as otherAliason alias.someCo
我试图使用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 解决方法假设你正在使用jOOQ 3.11(增加了对 unqualified asterisks和 qualified asterisks的支持),你可以写alias.asterisk() 甚至,使用jOOQ’s scala extensions alias.* 使用代码生成器时,这尤其强大. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |