php - 數據表 匯入 數據表?part2
ringa_lee
ringa_lee 2017-04-11 09:05:47
[PHP讨论组]

前提:buy為訂單,其中包含客戶數據的字段 email,address,name,phone,phone2
customer為客戶數據,蒐集不重複(phone,phone2)的客戶

我的目的是:
我想要從buy數據表中的每一筆訂單匯入數據到customer
每一筆訂單中包含字段:email,address,name,phone,phone2
想要將其匯入到customer數據表
匯入customer前的條件是:若匯入時發現phone 或 phone2與customer數據表的phone 或 phone2有重複時,則那一筆skip

INSERT INTO customer(email,address,name,phone,phone2) 
SELECT email,address,name,phone,phone2
FROM buy
WHERE (phone,phone2) not in (SELECT phone,phone2 FROM customer)
GROUP BY phone,phone2;

這樣子寫有出現了一些狀況...無法解決
不知道是哪裡有問題?

ringa_lee
ringa_lee

ringa_lee

全部回复(1)
巴扎黑

兄弟,又是你啊,这个问题还没解决啊?

INSERT INTO customer(email,address,name,phone,phone2) 
SELECT email,address,name,phone,phone2
FROM buy
WHERE (phone,phone2) not in (SELECT phone,phone2 FROM customer)
GROUP BY phone,phone2;

这种写法是各自对应的,如果遇上类似 要插入的 phone 跟 被插入表中的 phone2 重复时,这种 case, 这条是SQL处理不了的。

麻烦点,把条件分开写

INSERT INTO customer(email,address,name,phone,phone2) 
    SELECT email,address,name,phone,phone2
    FROM buy
    WHERE phone not in (SELECT phone FROM customer)
        AND phone not in (SELECT phone2 FROM customer)
        AND phone2 not in (SELECT phone FROM customer)
        AND phone2 not in (SELECT phone2 FROM customer)
    GROUP BY phone,phone2;
    

类似这种可以试试。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号