使用基于另一个填充表的INNER JOIN UPDATE语句更新空表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用基于另一个填充表的INNER JOIN UPDATE语句更新空表相关的知识,希望对你有一定的参考价值。
重要提示:我真的是使用mysql的新手。
我必须表,我正在尝试使用更新语句而不是使用insert语句来更新表,基于内连接查询上的另一个表。
我的第一个表如下所示:
exp_credit_tracker_designation
id association_id designation_name
基于另一个表:
exp_credit_tracker_assoc:
id, credit_type, association_name, address, city, province, postal_code, country, cycle_type, cycle_begin, cycle_months
'1', '2', 'Association', '14 bloor street', 'Toronto', 'ON', 'M5S 2E5', 'US', '2', '1526356800', '7'
'2', '2', 'designation', '40 Willcocks St', 'Ottawa', 'BC', 'M5S 2E5', 'CA', '1', '1526356800', '3'
'3', '2', 'credit types', '85 St George St', 'Toronto', 'AL', 'M5S 2E5', 'US', '2', '1540008000', '3'
'4', '1', 'association', '46 muriel ave', 'St. John', 'NB', 'M5M 2L2', 'US', '1', '1526356800', '4'
'5', '1', 'designation', '10 king street', 'Toronto', 'ON', 'M5S 2E5', 'CA', '2', '1526529600', '9'
现在,您可以注意到,第一个表目前没有任何值,我希望根据我的更新使用INNER JOIN语句自动更新我的表。有点像:
UPDATE exp_credit_tracker_designation
INNER JOIN exp_credit_tracker_assoc ON exp_credit_tracker_designation.assocaition_id = exp_credit_tracker_assoc.id
SET exp_credit_tracker_assoc.id = exp_credit_tracker_designation.assocaition_id
对我来说,这可能是填充我的全新桌面并与之互动的更快捷方式。
我不确定它是否有可能,甚至是否有意义。
我将等待关于在这些情况下遵循的方法的一个很好的建议。
你说你想用另一个表中的数据更新exp_credit_tracker_designation
表,即使exp_credit_tracker_designation
中已经没有任何数据,这对于更新语句是不可能的
更新语句会更改现有数据,并且由于此处没有数据,因此无需更新,至少我是如何解释您的问题的。
如果另一个表中没有数据,则必须使用insert语句将数据从一个表输入到另一个表。这很容易实现你可以做这样的声明:
insert into table1 (column1, column2, column3)
select column1, column2, column3 from table2
既然你说你是MySQL的新手,你可能会注意到我没有使用传统的语法
Insert into foo (bar, biz, bad)
values (X, Y, Z)
这是因为您从另一个表中提取数据。
以上是关于使用基于另一个填充表的INNER JOIN UPDATE语句更新空表的主要内容,如果未能解决你的问题,请参考以下文章
INNER JOIN mysql 从一个表到另一个表,它基于相同 id 的倍数
mysql中inner join和outer join有啥区别?