使用基于另一个填充表的INNER JOIN UPDATE语句更新空表

问题描述 投票:0回答:1

重要提示:我真的是使用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

对我来说,这可能是填充我的全新桌面并与之互动的更快捷方式。

我不确定它是否有可能,甚至是否有意义。

我将等待关于在这些情况下遵循的方法的一个很好的建议。

mysql sql-update inner-join
1个回答
1
投票

你说你想用另一个表中的数据更新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)

这是因为您从另一个表中提取数据。

© www.soinside.com 2019 - 2024. All rights reserved.