add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
create table queue(queue_id int primary key auto_increment, tele bigint);

insert into queue values
(null, null)
, (null, null)
, (null, null)
, (null, null)
, (null, null)
, (null, null)
, (null, null)
, (null, null)
, (null, null)
, (null, null)



create table container (container_id int primary key auto_increment, queue_container_id int, source bigint);
insert into container values
(null, 1, 1000000001)
, (null, 1, 1000000002)
, (null, 1, 1000000003)
, (null, 1, 1000000004)
, (null, 1, 1000000005)
, (null, 2, 1000000003)
select *
from queue q
inner join (
select c.*,
row_number() over(order by container_id) rn,
count(*) over() cnt
from container c
where queue_container_id = 1
) c on (c.rn - 1) = (q.queue_id - 1) % c.cnt
queue_id tele container_id queue_container_id source rn cnt
1 null 1 1 1000000001 1 5
2 null 2 1 1000000002 2 5
3 null 3 1 1000000003 3 5
4 null 4 1 1000000004 4 5
5 null 5 1 1000000005 5 5
6 null 1 1 1000000001 1 5
7 null 2 1 1000000002 2 5
8 null 3 1 1000000003 3 5
9 null 4 1 1000000004 4 5
10 null 5 1 1000000005 5 5
select *
from queue q
inner join (
select c.*, @rn := @rn + 1 rn
from (
select *
from container c
where queue_container_id = 1
order by container_id
) c
cross join (select @rn := 0) x
) c on (c.rn - 1) = (q.queue_id - 1) % @rn
queue_id tele container_id queue_container_id source rn
1 null 1 1 1000000001 1
2 null 2 1 1000000002 2
3 null 3 1 1000000003 3
4 null 4 1 1000000004 4
5 null 5 1 1000000005 5
6 null 1 1 1000000001 1
7 null 2 1 1000000002 2
8 null 3 1 1000000003 3
9 null 4 1 1000000004 4
10 null 5 1 1000000005 5