我有两个数据库表,一个叫做“headers”,另一个叫做“rows”。结构为:
Header: IDPK | Description
Row: IDPK | IDPK_Header | Item_ID | Qty
我需要做一个查询:“从一个标题,idpk找到另一个标题有相同的行数和相同的项目id和数量”。
例如:
Header Rows
IDPK Description IDPK Item_ID Qty
1 'Test1' 1 'A' 10
1 'Test1' 2 'B' 20
2 'Test2' 3 'A' 10
2 'Test2' 4 'B' 20
3 'Test3' 5 'A' 5
3 'Test3' 6 'B' 20
4 'Test4' 7 'A' 10
收割台 Test1
匹配 Test2
但不是 Test3
以及 Test4
问题是行数必须完全相同。我试着 ALL
但运气不好。
我怎样才能用对性能的观察来进行查询?这两个表可能非常大(约50万条记录)。
2条答案
按热度按时间pqwbnv8z1#
我建议使用forxml查询来创建每个idpk的项目列表。接下来我将搜索匹配的项目列表和数量。参见以下示例:
t98cgbkg2#
假设没有重复项:
基本上,这会对项目进行自连接,因此您只能获得匹配项。这个
on
验证两者的项数是否相同。以及having
保证所有匹配。注意:此版本将头的每个匹配项返回给自身。那是一张不错的支票。你当然可以把它过滤掉
on
或者where
条款。如果你有重复的项目,你可以简单地替换
r
使用: