以下是兩個表。我想根據兩個表中的信息更新(不選擇)第一個表。MySQL:根據來自A和B表的數據更新表A
第一個表命名somecities
:
Name - State - Country - Info1 - Info2
Orlando - FL - US - 123 -AAA
Hrodna - HV - BY - 890 -BBB
命名allcities
第二張表:
Name - State - Country - Info1
Orlando - FL - US - 123
Orlando - KY - US - 456
Orlando - WV - US - 789
Orlando - SW - SA - 333
Hrodna - HV - BY - 890
Minsk - MV - BY - 199
任何從somecities
表對(姓名,省,國家)的是在allcities
表,如果它很重要。所以,allcities
表更大。
我想修改somecities
這樣:
1)坐第一排,採取Orlando
。它會在allcities
中遇到4次。所以,製作4個奧蘭多線而不是1個(向3個城市增加3個)。
2)走下一個城市(第二個和最後一個) - Hrodna
。 Hrodna
在allcities中僅遇到一次,所以我們不會向somecities
添加任何行(添加零行)。
3)在somecities
的每一行都做。
查詢的結果是更新somecities
:
Name - State - Country - Info1 - Info2
Orlando - FL - US - 123 - AAA
Orlando - KY - US - 456 - AAA
Orlando - WV - US - 789 - AAA
Orlando - SW - SA - 333 - AAA
Hrodna - HV - BY - 890 - BBB
附:如您所見,Info2中的值取自Info2中同一城市的值。
它可以在一個查詢中完成嗎?兩個查詢作爲答案也將被接受。
我解釋清楚了嗎?
謝謝。
你會想要使用不存在,我會敲SQL提琴的例子 – twoleggedhorse
這聽起來像你想'INSERT''而不是''更新''somecities''表。你想以任何方式改變現有的行嗎? – acfrancis
你是對的。謝謝你指出。是的,現有的行不會更改。所以我想通過插入幾行來更新somecities表。 – Haradzieniec