如何通过使用JOOQ检查聚合数组中的特定元素来获取结果集?

问题描述

我想按查询中聚合数组中的特定值过滤结果。

这里是问题的一些描述。 科属于花园。花园属于区,区属于省。 用户有多个部分。这些部分属于他们的花园,属于他们的地区,属于省。

我想获取区数组中值为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 (将#修改为@)