MySQL和phpMyAdmin-将数据从一个数据库复制到另一个数据库?
以下是我尝试过的MySQL代码:MySQL和phpMyAdmin-将数据从一个数据库复制到另一个数据库?,mysql,wordpress,phpmyadmin,Mysql,Wordpress,Phpmyadmin,以下是我尝试过的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
"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')";
我想从单独的数据库和表wordpress.wp\u postemta
将数据插入wpcustom\u productmeta.wpc\u productmeta
,但我只想选择特定的列
这是两个表的结构:您需要使用
wp\u postemta
表的自联接来获取与特定post相关的所有行。然后使用整个选择的结果作为要插入的数据
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\u id
列):
“我想代码能说上千字”——当它是用你自己发明的语言写的时候(如果是用SQL写的,那就行了)。是的,请帮我纠正一下。你能发布两个表的结构吗?我添加了一些屏幕截图来显示表的结构。你试过我的查询吗?我的查询可以得到您要求的结果。但我认为您在wpc\u productmeta
表中遗漏了一列。它必须有product\u id
或post\u id
I get error:子查询返回的行数超过1行,正如您所说,在这种情况下它不起作用。你有更好的主意来完成我的计划吗?是否有一些键列可以用来连接所有不同的子查询以获得所有相应的行?如果我知道WordPress,这可能是显而易见的,但我不知道。也许截图有帮助?
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;