对比2个表mailbox_id字段的差集,然后做插入操作
生活随笔
收集整理的這篇文章主要介紹了
对比2个表mailbox_id字段的差集,然后做插入操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
對比2個表mailbox_id字段的差集,并導出。然后利用循環insert插入。
| 1 2 3 4 5 6 7 8 9 | kkmlmysqlpass=$(cat?/usr/local/kk-ml/config/custom.conf?|?grep?-w?"pass"?|?awk?-F"?"?'{print?$NF}') /usr/local/kk-ml/service/mysql/bin/mysql?-u?kkml?-p$kkmlmysqlpass?kkml?-e?"select?*?from?core_mailbox?where?mailbox_id?not?in?(select?mailbox_id?from?co_user);"?>/root/chaji.txt cat?/root/test.txt?|?awk?-F"?"?'{print?$1"\t"$2}'?|?sed?1d?>/root/chaji_id.txt cat?/root/chaji_id.txt?|?while?read?LINE do ?mailbox_id=$(echo?$LINE?|awk??'{print?$1}') ?domain_id=$(echo?$LINE?|awk??'{print?$2}') ?/usr/local/kk-ml/service/mysql/bin/mysql?-u?kkml?-p$kkmlmysqlpass?kkml?-e?"insert?into?co_user(mailbox_id,domain_id,realname,engname,oabshow,showorder,eenumber,gender,birthday,homepage,tel_mobile,tel_home,tel_work,tel_work_ext,tel_group,im_qq,im_msn,addr_country,addr_state,addr_city,addr_address,addr_zip,remark,last_session,last_login,openid,unionid,wx_id)?values('$mailbox_id','$domain_id','testdel2','NULL','1','0','NULL','male','0000-00-00','NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL','0','0','0');" done |
備注(大神方法):
好吧!這個是可以,但是數據多了的話,想到這個查詢的邏輯有點受不住
于是再改為下面的這樣:
select?cu.mailbox_id,cm.mailbox_id??co_user?as?cu?left?join?core_mailbox?as?cm?on?cu.mailbox_id?=?cm.mailbox_id?where?cm.mailbox_id??NULL;利用了left join的,然后進行對比,并且利用where進行篩選。
后面也在網上找了這條:
SELECT?mailbox_id?FROM?`co_user`?left?join? (select?mailbox_id?as?i?from?core_mailbox)?as?t1 on?co_user.mailbox_id=?t1.i?where?t1.i?is?NULL;概念上與第二條同理。
?
好吧! 回顧了一下left join
SQL LEFT JOIN 關鍵字
LEFT JOIN 關鍵字會從左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中沒有匹配的行。
本文轉自 sailikung 51CTO博客,原文鏈接:http://blog.51cto.com/net881004/2054820,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的对比2个表mailbox_id字段的差集,然后做插入操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 获取数组中的最大值
- 下一篇: replication crash sa