假设我有以下表格: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