我有下表
表1
id stubs
373 1
390 4
392 3
392 3
392 3
如何从table1创建table2,如何根据存根和id创建序列号
表2
id stubs sequenceno
373 1 1
390 4 1
390 4 2
390 4 3
390 4 4
392 3 1
392 3 2
392 3 3
答案 0 :(得分:0)
我相信您的答案可以在这里找到。 您可以使用现有的MySQL函数为您完成此任务。
https://dev.mysql.com/doc/refman/8.0/en/window-function-descriptions.html#function_row-number
答案 1 :(得分:0)
如果我使用一个辅助表(在这种情况下是我的数据库中的日期),该表包含许多无序排列的ID,则可以选择不同的ID和存根并加入日期以获取序列号>
drop table if exists t;
create table t
(id int, stubs int);
insert into t values
(373 , 1),
(390 , 4),
(392 , 3),
(392 , 3),
(392 , 3);
select s.*,d.id from
(
select distinct id,stubs from t
) s
join dates d on d.id <= s.stubs;
+------+-------+----+
| id | stubs | id |
+------+-------+----+
| 373 | 1 | 1 |
| 390 | 4 | 1 |
| 390 | 4 | 2 |
| 390 | 4 | 3 |
| 390 | 4 | 4 |
| 392 | 3 | 1 |
| 392 | 3 | 2 |
| 392 | 3 | 3 |
+------+-------+----+
8 rows in set (0.00 sec)