以下是两个表。我想根据两个表中的信息更新(不选择)第一个表。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