问题描述
我想按查询中聚合数组中的特定值过滤结果。
这里是问题的一些描述。 科属于花园。花园属于区,区属于省。 用户有多个部分。这些部分属于他们的花园,属于他们的地区,属于省。
我想获取区数组中值为2的用户ID。 我尝试使用任何运算符,但无法正常运行。 (语法错误) 任何帮助将不胜感激。
ps:这可以使用普通SQL编写
rs = dslContext.select(
field("user_id"),field("gardens_array"),field("province_array"),field("district_array"))
.from(table(select(
arrayAggDistinct(field("garden")).as("gardens_array"),arrayAggDistinct(field("province")).as("province_array"),arrayAggDistinct(field("distict")).as("district_array"))
.from(table("lst.user"))
.leftJoin(table(select(
field("section.user_id").as("user_id"),field("garden.garden").as("garden"),field("garden.province").as("province"),field("garden.distict").as("distict"))
.from(table("lst.section"))
.leftJoin("lst.garden")
.on(field("section.garden").eq(field("garden.garden")))
.leftJoin("lst.district")
.on(field("district.district").eq(field("garden.district")))).as("lo"))
.on(field("user.user_id").eq(field("lo.user_id")))
.groupBy(field("user.user_id"))).as("joined_table"))
.where(val(2).equal(DSL.any("district_array"))
.fetch()
.intoResultSet();
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)