【问题标题】:How to copy multiple rows from one table to another table using 2 criteria如何使用 2 个条件将多行从一个表复制到另一个表
【发布时间】:2016-03-07 10:32:41
【问题描述】:

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

我正在尝试将一些行从一个表复制到另一个表。旧表是这样的:

我的新表(已经存在)也有 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';

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

干杯。

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    试试这个:

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

    【讨论】:

    • 将始终为空,因为meta_key 不能同时具有值​​。第二个是OR
    • 感谢您的回复,我知道 meta_key 发生冲突,但我想将 _wpsc_smaak 及其值插入到新表中,我无法根据sku
    • 你能再试一次吗?做了一些改变
    • 你是我的英雄! meta_key
    • @LuukSkeur,更新了答案以保持一致性。乐于助人!
    猜你喜欢
    • 2021-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-20
    • 1970-01-01
    • 2012-11-24
    • 1970-01-01
    相关资源
    最近更新 更多