0
假设我有以下表格:如何构建这个sql查询来创建下列新表?
TABLEA
a_name | age | country
Jordan | 5 | Germany
Molly | 6 | Spain
Paris | 7 | France
tableB的
b_name | age | country
Kyle | 5 | Germany
Bob | 6 | Spain
Bob | 7 | Spain
Stephen | 7 | France
Kyle | 9 | France
Mario | 2 | Mexico
我想让它,这样我可以产生一个包含表C:
id (auto increment primary key) | age | country | country_marker
1 | 5 | Germany | 1
2 | 6 | Spain | 2
3 | 7 | France | 3
4 | 7 | Spain | 2
5 | 8 | France | 3
6 | 9 | France | 3
7 | 2 | Mexico | 4
对于新表:
- 采取任何独特的“年龄,国家”对只并将其付诸表C与“country_marker”自动分配基于不同的“国家”递增的唯一编号
注意没有国家表,作为tableC中的“国家”仅基于tableA中的任何国家,tableB和country_marker只是一个系统生成的标识符,用于指示表中的唯一国家/地区。只要满足上面的项目符号,输出tableC“id和国家标记”顺序就没有关系。
我已经痛苦地尝试使用MySQL游标来制作它,并且想知道它是否可能/什么是一些SQL查询或我可以使用的一组查询,这会比使用游标更快。
country_marker列是国家表的主键吗? –
假设没有国家表。根据从tableA和tableB中选择的数据,它为国家标记放置一个数字(这就是自动递增)的唯一原因。使用游标,我会遍历tableA和tableB,将每个独特的年龄,国家/地区对插入到一个新表中,并且country_marker会随着它遇到一个独特的国家而增加。 – Rolando