MySQL 和 phpMyAdmin - 将数据从一个数据库复制到另一个数据库?

MySQL and phpMyAdmin - copy data from one database to another?

这是我试过的 MySQL 代码:

"INSERT INTO wpcustom_productmeta.wpc_productmeta(brand,model,country,carrier) 
VALUES (SELECT meta_value FROM wordpress.wp_postmeta WHERE meta_key='brand'),
        (SELECT meta_value FROM wordpress.wp_postmeta WHERE meta_key='model'),
        (SELECT meta_value FROM wordpress.wp_postmeta WHERE meta_key='country'),
        (SELECT meta_value FROM wordpress.wp_postmeta WHERE meta_key='carrier')";

我想将数据从单独的数据库插入 wpcustom_productmeta.wpc_productmeta 和 table wordpress.wp_postmeta 但我只想选择特定的列。

这是两个 table 的结构:

您需要使用 wp_postmeta table 的自联接来获取与特定 post 相关的所有行。然后用这整个SELECT的结果作为插入的数据

INSERT INTO wpcustom_productmeta.wpc_productmeta (brand, model, country, carrier)
SELECT DISTINCT m1.meta_value, m2.meta_value, m3.meta_value, m4.meta_value, 
FROM wordpress.wp_postmeta AS m1
JOIN wordpress.wp_postmeta AS m2 ON m1.post_id = m2.post_id
JOIN wordpress.wp_postmeta AS m3 ON m1.post_id = m3.post_id
JOIN wordpress.wp_postmeta AS m4 ON m1.post_id = m4.post_id
WHERE m1.meta_key = 'brand'
  AND m2.meta_key = 'model'
  AND m3.meta_key = 'country'
  AND m4.meta_key = 'carrier'

你的问题我还不是很清楚。

但您可以尝试从(我猜您在两个表中都有 product_id 列)开始:

INSERT INTO wpcustom_productmeta.wpc_productmeta(product_id,brand,model,country,carrier) 
SELECT 
  product_id,
  MAX(IF(meta_key='brand',meta_value,''),
  MAX(IF(meta_key='model',meta_value,''),
  MAX(IF(meta_key='country',meta_value,''),
  MAX(IF(meta_key='carrier',meta_value,''),
FROM wordpress.wp_postmeta
GROUP BY product_id;