如何构造这个sql查询来创建以下新表?

时间:2013-02-06 14:12:59

标签: mysql

假设我有以下表格:

表A

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

我想这样做,我可以生成一个包含以下内容的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

对于新表:

  • 仅使用任何唯一的“年龄,国家/地区”对,并将它们放入tableC,“country_marker”会根据不同的“国家/地区”自动分配递增的唯一数字

请注意,没有国家/地区表,因为表C中的“国家/地区”仅基于tableA中的任何国家/地区,而tableB和country_marker只是系统生成的标识符,用于指示表中的唯一国家/地区。输出tableC“id和country marker”排序无关紧要,只要它符合上面的子弹。

我已经痛苦地试图使用MySQL游标来制作它,并想知道它是否可能/我可以使用哪些SQL查询或查询集,这会比使用游标更快。

1 个答案:

答案 0 :(得分:0)

我首先在phpmyadmin之类的东西中创建表C。然后我写一个查询来从表A和B中提取我要放入C的信息。然后,在phpmyadmin中,我将查询结果导出到本地机器上的.sql文件中。我打开.sql文件对INSERT语句进行必要的修改,以便我可以将.sql文件中的数据导入到表C中。

这不是最有效的方式,但它似乎是技术上最不可行的方式。