我正在尝试将事务中的所有transaction_subcategory_id更新为匹配中的match_subcategory_id,其中match中的match_name与事务中的transaction_subcategory_name相同。
它必须简单,只是没有走得太远......
这是我们最近的尝试......
UPDATE transaction JOIN match ON match.match_name = transaction.transaction_name
SET transaction.transaction_subcategory_id = match.match_subcategory_id;
表
match
--------------------------
match_id
match_name
match_subcategory_id
transaction
--------------------------
transaction_id
transaction_name
transaction_subcategory_id
答案 0 :(得分:2)
UPDATE `transaction` SET `transaction`.`transaction_subcategory_id` = `match`.`match_subcategory_id`
JOIN `match` ON `match`.`match_name` = `transaction`.transaction_name;
只需切换SET
和JOIN
的位置即可。
MySQL Docs on UPDATE statement
文档仅显示隐式连接:
UPDATE `transaction`, `match` SET `transaction`.`transaction_subcategory_id` = `match`.`match_subcategory_id`
WHERE `match`.`match_name` = `transaction`.`transaction_name`;
但是他们说您可以使用JOIN
上SELECT
UPDATE
上的SET
语法,因此在切换JOIN
和{{1}}时您的查询应该有效。
答案 1 :(得分:0)
在查询之前尝试使用SET