You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

高效SQL查询:找出包含表B整行数据的表A的id

需求背景与问题

表结构

create table A {
   id   text,
   val  text
}

create table B {
   val0 text, 
   val1 text,
   val2 text
}

表数据说明

表A的id和val字段均包含大量离散值,二者为多对多关系,示例数据如下:

idval
onea
oneb
oney
twoa
twod
twoe
twox
threec
fourc
fourf
fourz
fourg

表B存储的是与表A的val同集合的组合数据,示例如下:

val0val1val2
abc
ade
cfg
zfc

查询需求

编写SQL查询,返回且仅返回表A中满足以下条件的id:该id对应的所有val值中,至少包含表B中的某一整行数据。

在上述示例中,查询应返回id“two”(该id的分组包含表B第二行的所有值a、d、e,分组中包含x不影响结果),同时应返回id“four”(该id的分组覆盖表B的第三行和第四行数据)。表A和表B中的数据顺序不影响结果。

目前已通过存储过程实现该逻辑,现寻求适用于百万级数据量的简洁且高效的SQL查询语句。

附记

@Ajax1234和@GMB提供的方案(GMB的第二个不引入主键的方案)均有效,但在真实数据集上,@Ajax1234基于左连接的方案性能更优:耗时约9秒,而GMB的方案耗时超1分钟。

内容的提问来源于stack exchange,提问作者Peter K.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 05:43:28