假設我有以下表格:MySQL查詢更新MySQL中的列基於表?
TABLEA
a_name | age | country
Jordan | 5 | Germany
Jordan | 6 | Spain
Molly | 6 | Spain
Paris | 7 | France
John | 7 | Saudi Arabia
John | 5 | Saudi Arabia
John | 6 | Spain
tableB的
id (auto increment primary key)
| age | country | group_num (initially null)
1 | 5 | Germany |
2 | 6 | Spain |
3 | 7 | France |
4 | 7 | Spain |
5 | 8 | France |
6 | 9 | France |
7 | 2 | Mexico |
8 | 7 | Saudi Arabia |
9 | 5 | Saudi Arabia |
我希望能夠做某種選擇/更新我在哪裏可以得到以下的「group_num」列的值:
表B
id (auto increment primary key)
| age | country | group_num
1 | 5 | Germany | 1
2 | 6 | Spain | 1
3 | 7 | France | 1
4 | 7 | Spain |
5 | 7 | France | 2
6 | 9 | France |
7 | 2 | Mexico |
8 | 7 | Saudi Arabia | 1
9 | 5 | Saudi Arabia | 1
group_num基於的標準進行安排:
1) Places person "a_name" went.
2) Whether other people visited that same country. (regardless of age).
之所以ID的1,2,3,8,9都具有相同的groupId是因爲喬丹,莫莉和巴黎都發生在由於上述兩個標準而以某種方式相關聯。 (他們都去了西班牙)和其他國家,也就是德國也拜訪過西班牙的約旦,所以它有同樣的組織名稱。約翰訪問了沙特阿拉伯,他也訪問了西班牙,所以它有同樣的group_num。
有一些SQL查詢或查詢(可能會或可能不會涉及其他「互補」表創建去上面顯示期望的結果?(即它是好的,如果group_num應先充滿auto_incrementing值就像「id」一樣,如果有必要,稍後更新(可以爲其他值字段顯示非空值爲「(空)」
遊標/迭代非常慢......以下是我將執行的填寫這些值的步驟,使用光標的過程非常緩慢,如果我可以擺脫它,那將是非常好的:
- 對於表格A,我們看到約旦5歲時訪問過德國。(表格[Group_Num,德國]中的數字更新爲1)。
- 約旦訪問西班牙在6歲(集團民爲[6,西班牙]更新爲1,以顯示其相同的分組一樣的傢伙約旦訪問西班牙)
- 莫莉訪問西班牙6歲(group_num爲[6 ,西班牙],因爲即使它是一個不同的人,同樣的年齡/國家對被擊中)
- 巴黎7歲時訪問了法國(tableB中的group_num更新爲2,因爲她是一個不同的人,訪問了一個完全不同的人國家,不分年齡
- 約翰7歲時訪問沙特阿拉伯(沙特阿拉伯[7,沙特阿拉伯]在tableB中的group_num更新爲3年齡+國家對)
- John在5歲時訪問沙特阿拉伯(表格B中的[5,沙特阿拉伯]的group_num自從它仍然是約翰以來更新爲年齡+國家對3)
- 約翰6歲時訪問西班牙([6,西班牙]的group_num已經是1。 ,可能會有一些分組...所以group_num約翰參觀了所有的地方[6,西班牙],[5,沙特阿拉伯]和[7,沙特阿拉伯]全部更新爲1
[你有什麼嘗試?](http://www.whathaveyoutried.com/)請參閱[問問建議](http://stackoverflow.com/questions/ask-advice)。 –
以編程方式使用SQL遊標遍歷tableA的每一行,並根據需要更新tableB。如果可能,使用SQL查詢(ies)尋求一種更好的方法。 – Rolando
不幸的是,在這個例子中的人有像喬丹(一個國家)和巴黎(在另一個國家的着名城市)的名字 – Magnus