我有两个查询,它们查看不同的数据库表,并从每个表中的JSONB列中查找格式为[“tag1”、“tag2”、“tag3”]等的项。查询的目的是填充预测性下拉列表,即如果列表包含“dog”且用户类型为“d”,则应返回“dog”。这些查询中的每一个都单独工作,我可以很容易地将它们组合成一个JOOQ查询?
final Field<String> value = field(name("A", "value"), String.class);
final Result<Record1<String>> res1 = sql.dsl()
.selectDistinct(value)
.from(CAMPAIGN,lateral(table("jsonb_array_elements_text({0})", CAMPAIGN.TAGS)).as("A"))
.where(CAMPAIGN.STORE_KEY.equal(campaign.getStoreKey()))
.and(CAMPAIGN.CAMPAIGN_KEY.notEqual(campaignKey))
.and(value.like(search + "%%"))
.fetch();
final Result<Record1<String>> res2 = sql.dsl()
.selectDistinct(value)
.from(STOREFRONT, lateral(table("jsonb_array_elements_text({0})", STOREFRONT.TAGS)).as("A"))
.where(STOREFRONT.STORE_KEY.equal(campaign.getStoreKey()))
.and(value.like(search + "%%")).fetch();
当然可以!在SQL中,“组合”两个查询主要使用union[ALL]
实现(其中ALL
表示要维护重复项)。在您的情况下,请写以下内容:
final Result<Record1<String>> result =
sql.dsl()
.select(value)
.from(
CAMPAIGN,
lateral(table("jsonb_array_elements_text({0})", CAMPAIGN.TAGS)).as("A"))
.where(CAMPAIGN.STORE_KEY.equal(campaign.getStoreKey()))
.and(CAMPAIGN.CAMPAIGN_KEY.notEqual(campaignKey))
.and(value.like(search + "%%"))
.union(
select(value)
.from(
STOREFRONT,
lateral(table("jsonb_array_elements_text({0})", STOREFRONT.TAGS)).as("A"))
.where(STOREFRONT.STORE_KEY.equal(campaign.getStoreKey()))
.and(value.like(search + "%%")))
.fetch();
请注意,我已经将selectdistinct()
替换为select()
,因为union
操作已经删除了重复项,所以不需要在每个单独的union子查询中删除重复项。
问题内容: 结合这两个查询的正确语法是什么? 和 我试过了: 但我收到“ UNION和ORDER BY的用法不正确”。 编辑 此外,我希望结果在一行中返回。这样我就可以访问php中的值,例如 根据西蒙的建议,我不应该使用UNION,因为我想返回一行数据 问题答案: 您不能先进入,然后再进入。 编辑 但是你可以 将ORDER BY或LIMIT应用于单个SELECT,将子句放在包围SELECT的括号内
问题内容: 如何合并这两个SQL语句? 两个表中都存在hits10,hits11和hits12。 问题答案: 使用UNION查询-只需在两个查询之间填入“ UNION”即可: 更新 将联合包装在另一个查询中:
本文向大家介绍MySQL查询将两列合并为一个列?,包括了MySQL查询将两列合并为一个列?的使用技巧和注意事项,需要的朋友参考一下 您可以为此使用功能。在该函数中,它从列中返回第一个NON NULL值。为了理解这个概念,让我们首先创建一个演示表 使用insert命令在表中插入一些记录。查询如下- 现在,您可以使用select语句显示表中的所有记录。查询如下- 以下是输出 这是将两列合并为一个查询的
我一直在四处寻找,试图自学流媒体api。我制作了几个类,列出了宠物的arraylist,有一个抽象的方法来显示宠物的声音,这两个表达式分开使用效果很好 但我想看看是否可以将它们组合成一行代码,这样在列表打印出来之后,它就会打印出声音。我想完成的事情有参考代码吗?
问题内容: 如何将这两个JToken合并为一个JToken。听起来应该很简单,但无法解决。 谢谢您的帮助! 到目前为止,这是我尝试过的: 我首先将第一个对象分配给变量,然后尝试将其连接到第二个变量。我有一个循环,可以带回具有三个字段的多个页面。最终目标是抓取每个页面并创建一个包含所有页面的大J。 像这样的东西: 问题答案: 您可以用来将一个合并到另一个。请注意,可以控制数组的合并方式。从Enume
问题内容: 我要么变老,要么我需要写的查询变得越来越复杂。以下查询将获取与该用户的所有关联。 该表为(,,,); 现在,我还需要通过 独立查询如下所示: 但是,是否可以将这两个查询合并为一个查询?我的逻辑认为应该这样,尽管我不知道如何进行实际的JOIN。 问题答案: 我可能会使用UNION。