SQL:连接两个表(LEFT OUTER JOIN)然后更新值

ste*_*mie 2 mysql sql sql-update

我试图根据另一个表中的值更新一列中的值.

如果列都在同一个表中,我可以这样做:

UPDATE wp_posts 
SET post_date = REPLACE (post_date, 'X', 'Y') 
WHERE meta_value = 'Z';
Run Code Online (Sandbox Code Playgroud)

但是我需要先加入两个表才能更新:

SELECT * 
FROM wp_posts 
LEFT OUTER JOIN wp_postmeta ON post_id = post_id
Run Code Online (Sandbox Code Playgroud)

如何基于我加入的两个表进行更新?

hgu*_*yan 5

如果您使用SQL Server,请尝试这种方式

UPDATE WP
SET WP.post_date = REPLACE(WPM.post_date, 'X', 'Y') 
FROM wp_posts WP 
   LEFT OUTER JOIN wp_postmeta WPM ON WP.post_id = WPM.post_id
WHERE WP.meta_value = 'Z';
Run Code Online (Sandbox Code Playgroud)

更新:

如果您正在使用MySQL.这是MySQL的更新

UPDATE wp_posts WP 
   LEFT JOIN wp_postmeta WPM ON WP.post_id = WPM.post_id
SET WP.post_date = REPLACE(WPM.post_date, 'X', 'Y') 
WHERE meta_value = 'Z';
Run Code Online (Sandbox Code Playgroud)