I wanted to make an update against my local database where I'd make some of the fields have the same value as another field present in the table.
I came up with this query:
$wpdb->prepare(
    "
    UPDATE wp_usermeta meta
    SET meta.meta_value = (
      SELECT usermeta.meta_value
      FROM wp_usermeta usermeta
      WHERE usermeta.meta_key='nickname'
      AND usermeta.user_id = %d
    )
    WHERE meta.user_id = %d
    AND meta.meta_key='first_name'
    ",
    $userId[0],
    $userId[0]
)
The query would be run in a PHP loop so on each iteration the $userId will be different. The query is run against WordPress database (but this should be irrelevant to the question).
I'm receiving the following error when attempting to run the query:
Table 'meta' is specified twice, both as a target for 'UPDATE' and as a separate source for data
How could I solve this problem?
 
     
    