매우 흥미로운 질문을. 좋아, 그래서 크로스 조인을 사용하지 왜 생각에 도착 : 여기에 귀하의 범위는 정말 작은하지 않는 한 아마 쓸모가 못생긴 해킹 ...
select * from (
select 1 as num UNION
select 2 as num UNION
select 3 as num UNION
select 4 as num UNION
select 5 as num UNION
select 6 as num UNION
select 7 as num UNION
select 8 as num UNION
select 9 as num UNION
select 10 as num
) t ;
+-----+
| num |
+-----+
| 1 |
| 2 |
....
| 9 |
| 10 |
+-----+
10 rows in set (0.00 sec)
편집입니다. 그래서, 여기에 또 다른 해킹이 있습니다.이 메모리는 여러분을 메모리 테이블에서 꽤 빠르게 쌓아 올릴 것이며 아마도 합리적으로 좋을 것입니다.
select POW(2,0)*t0.num + POW(2,1)*t1.num + POW(2,2)*t2.num + POW(2,3)*t3.num
as num
from (
select 0 as num UNION
select 1 as num
) t0, (
select 0 as num UNION
select 1 as num
) t1, (
select 0 as num UNION
select 1 as num
) t2, (
select 0 as num UNION
select 1 as num
) t3
order by num ;
+------+
| num |
+------+
| 0 |
| 1 |
....
| 14 |
| 15 |
+------+
16 rows in set (0.00 sec)
쉽게 2의 제곱으로 가고 충분히 빠를 것입니다. 기록을 곱
당신이 다른 쿼리에 대한 제한으로서이 필요하십니까 : MS SQL와 –
@Goran Rakic : 맞습니다. 나는 두 테이블 (T1, T2)에 가입해야합니다. 그들은 날짜를 포함하지 않습니다. 그렇다면 T1 기록과 T2 기록을 일치시키는 매우 복잡한 술어가 있습니다. 술어는 T1, T2 및 두 날짜 D1 및 D2의 값에 따라 다릅니다. 날짜 D1은 공 간으로 주어지며, D2는 D1에서 D1 + 10까지의 범위에있을 수 있습니다. – danatel
(D2> = D1 및 D2 =