一张表结构如下,省略其他字段,start和end字段是数字,只保证end大于start
id | start | end |
---|
1 | 111 | 222 |
2 | 232 | 242 |
3 | x | x+N |
需求是我需要通过这张表的(start,end)去其他表中查询出对应的记录,但是其他表中可能会存在(start,end)中有记录不存在的情况,但是我需要将不存在的情况也考虑,希望查询结果如下:
id | | |
---|
start | | |
start+1 | | |
start+n | | |
start+ ... | | |
end | | |
如何通过sql将(start,end)区间中的每一个数字都查询成为一条记录,这样就可以通过这个去左连接其他表
目前已知一个办法是
select (
select start
union
select start +1
union
select start + ...
union
select end
)left join xxx 。。。。。。
想请问下有没有更好的办法
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…