2016-03-07 56 views
0

请客气,我第一次尝试MySQL和我的第一个SQL问题。如何使用2个条件将多行从一张表复制到另一张表

我想从一个表复制一些行到另一个。旧表格如下所示:enter image description here

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

我想从旧表(wpsc_smaak,wpsc_kg-of-st,wpsc_inhoud)将最下面的3行复制到新表中,其中两个表中的元键都具有相同的值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'; 

我希望这是清楚你们。

干杯。

回答

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值。

+0

将始终为空,因为'meta_key'不能同时具有值​​。第二个是'OR' – vaso123

+0

@lolka_bolka,刚刚添加该评论:) –

+0

感谢您的回复,我知道我有一个'meta_key'的碰撞,但我想插入_wpsc_smaak和它的值到新表和我我无法根据sku –

相关问题