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

标签 mysql sql-update inner-join

重要: 我真的是一个使用MYSQL的菜鸟。

我必须表,并且我正在尝试使用更新语句而不是使用插入语句来更新表,基于内部联接查询上的另一个表。

我的第一个表如下所示:

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 into table1 (column1, column2, column3)
select column1, column2, column3 from table2

既然你说你对MySQL相当陌生,你可能会注意到我没有使用传统的语法

Insert into foo (bar, biz, bad)
values (X, Y, Z)

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

关于mysql - 使用基于另一个已填充表的 INNER JOIN UPDATE 语句更新空表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50299250/

相关文章:

php - MySQL 中的 If 或 CASE 语句

mysql - 解决mysql中的 "Illegal mix of collations"错误

postgresql - 将 postgreSQL 触发器应用于数据库中的现有行

MySQL - 加入以逗号分隔的字段

三节点之间的mysql复制(master主复制和一个定向slave)

sql-server-2008 - 更新热门查询

postgresql - 有没有更好的方法来更新 PostgreSQL

sql - CROSS JOIN是没有ON子句的INNER JOIN的同义词吗?

php - 使用 Order by 和 Group By 进行内连接的 Mysql 查询速度更慢

php - mysql/php 如果值为空则忽略设置