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