【发布时间】:2021-10-06 19:48:59
【问题描述】:
在 Windows 10 企业版 21H1 上运行 SQL Server 14.0.2037.2
仅当该 ID 内所有行中的另一个列条目与第二个表中类似列的条目匹配时,我才尝试返回 ID,同样在特定 ID 内。 例如,
create table #F(patentid VARCHAR(8), subclass VARCHAR(3));
insert into #F values ('l','x');
insert into #F values ('l','y');
insert into #F values ('l','z');
insert into #F values ('m','x');
insert into #F values ('n','z');
create table #P(patentid VARCHAR(8), subclass VARCHAR(3));
insert into #P values ('b','x');
insert into #P values ('c','w');
insert into #P values ('c','x');
insert into #P values ('c','y');
insert into #P values ('c','z');
insert into #P values ('d','x');
insert into #P values ('d','y');
insert into #P values ('d','z');
insert into #P values ('e','x');
insert into #P values ('e','y');
insert into #P values ('e','z');
我正在尝试编写一个查询,该查询将为#F 中的每个专利ID 返回子类条目完全匹配的#P 中的所有专利ID。 #F 中的 "l" 与 #P 中的 "d" 和 "e" 匹配 [匹配的子类是 'x'、'y' 和 'z'] 以及#F中的“m”与#P中的“b”匹配[匹配的子类是“x”]
输出应该是:
l, d
l, e
m, b
代码需要高效,因为 #F 和 #P 都包含数百万行。我尝试过 Union,但它适用于整组行,并且不允许按子集匹配(即在专利 ID 内)
非常感谢任何帮助。
【问题讨论】:
-
这可能会有所帮助: -- 您想要的是一个联接,其中源中的项目数与联接表中的项目数匹配,并且与联接中的项目数匹配
标签: sql sql-server tsql relational-division