如何使用2个条件将多个行从一个表复制到另一个表

时间:2016-03-07 10:32:41

标签: mysql sql

请礼貌,我第一次尝试MySQL和我的第一个SQL问题。

我正在尝试将一些行从一个表复制到另一个表。旧表格如下所示:enter image description here

我的新表(已经存在)也有meta_key' _wpsc_sku'并且在meta_value中也具有相同的sku值。

我想将旧表中的底部3行(wpsc_smaak,wpsc_kg-of-st,wpsc_inhoud)复制到新表中,其中两个表中的元键都是wpsc_sku,具有相同的值。我有多个帖子/产品要复制。

到目前为止,我得到了这个(不工作),只是试图复制1个字段:

INSERT INTO `test_data` (`product_id`, `meta_key`, `meta_value`) 
SELECT `test_data`.`product_id`, `wp_postmeta`.`meta_key`, `wp_postmeta`.`meta_value` 
FROM `wp_postmeta` INNER JOIN `test_data` 
WHERE (`wp_postmeta`.`meta_key`= '_wpsc_sku' AND `wp_postmeta`.`meta_value` = `test_data`.`meta_value`) AND `wp_postmeta`.`meta_key` = '_wpsc_smaak';

我希望你们能清楚这一点。

干杯。

1 个答案:

答案 0 :(得分:0)

试试这个:

INSERT INTO `test_data` 
(`product_id`, `meta_key`, `meta_value`)  
SELECT 
    td.`product_id`, 
    wp2.`meta_key`, 
    wp2.`meta_value` 
FROM `test_data` td
INNER JOIN `wp_postmeta` wp1 ON 
    wp1.`meta_value` = td.`meta_value` AND wp1.`meta_key`= '_wpsc_sku' 
INNER JOIN `wp_postmeta` wp2 ON 
    wp2.`post_id` = wp1.`post_id` AND wp2.`meta_key`= '_wpsc_smaak' 

注意:
更改了子选择表顺序。使用wp1wp2分别获得post_id_wpsc_smaak值。