关注我的问题here。
我有MS SQL Server(常规SQL),它拥有2个表。每个表包含约500,000条记录。当我写这个查询时它会叠加。如何让它以有效的方式运行?
以下是表格:
第一个表 - MajorRange
| From | To | Group ....
|--------|---------|---------
| 1200 | 1500 | A
| 2200 | 2700 | B
| 1700 | 1900 | C
| 2100 | 2150 | D
...
第二个表格 - SubRange
| From | To | Group ....
|--------|---------|---------
| 1208 | 1300 | E
| 1400 | 1600 | F
| 1700 | 2100 | G
| 2100 | 2500 | H
...
输出表应该是SubRange
组之间重叠的所有MajorRange
组。在以下示例中,结果表为:
| Major | Sub |
|--------|------|-
| A | E |
| A | F |
| B | H |
| C | G |
| D | H |
我使用的查询类似于:
select M.Group Major , S.Group Sub
From MajorRange M, SubRange S
where M.From <= S.To and M.To >= S.From