0

假设我有以下表格:

表A

a_name | age | country
Jordan | 5 | Germany
Molly | 6 | Spain
Paris | 7 | France

表B

b_name | age | country
Kyle | 5 | Germany
Bob | 6 | Spain
Bob | 7 | Spain
Stephen | 7 | France
Kyle | 9 | France
Mario | 2 | Mexico

我想让它可以生成一个包含以下内容的 tableC:

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中,“国家标记”会根据不同的“国家”自动分配递增的唯一数字

请注意,没有国家表,因为 tableC 中的“国家”只是基于 tableA 中的任何国家,而 tableB 和 country_marker 只是系统生成的标识符,用于指示表中的唯一国家/地区。输出表 C“id 和国家标记”的顺序无关紧要,只要符合上面的项目符号即可。

我已经痛苦地尝试使用 MySQL 游标来生成它,并且想知道它是否可能/我可以使用的一些 SQL 查询或一组查询是否会比使用游标更快。

4

1 回答 1

0

我会通过首先在 phpmyadmin 中创建表 C 来解决这个问题。然后我会编写一个查询来从表 A 和 B 中提取我想要放入 C 的信息。然后,在 phpmyadmin 中,我会将查询结果导出到本地计算机上的 .sql 文件中。我会打开 .sql 文件对 INSERT 语句进行必要的修改,以便可以将 .sql 文件中的数据导入表 C。

这并不是最有效的方法,但它似乎是绝对可行的技术最少的方法。

于 2013-02-06T14:18:13.843 回答