次のテーブルがあるとします。
テーブル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
新しいテーブルの場合:
- 一意の「年齢、国」のペアのみを取得し、「country_marker」を使用して tableC に配置し、個別の「国」に基づいて増分する一意の番号を自動的に割り当てます
tableC の「country」は、tableA にある国に基づいており、tableB と country_marker は、テーブル内の一意の国を示すシステム生成の識別子にすぎないため、countries テーブルがないことに注意してください。出力 tableC の「ID と国マーカー」の順序は、上記の箇条書きを満たしている限り問題ありません。
私は苦労してMySQLカーソルを使用してこれを作成しようとしましたが、カーソルを使用するよりも高速になるSQLクエリまたはクエリのセットが可能かどうかを知りたいです。