对比2个表mailbox_id字段的差集,然后做插入操作

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:
+关注继续查看

对比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,如需转载请自行联系原作者

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
10月前
|
SQL 关系型数据库 MySQL
MySQL去除表中重复数据后保留最小ID数据【测试可用】
MySQL去除表中重复数据后保留最小ID数据【测试可用】
65 0
|
关系型数据库 MySQL
MySQL防止重复插入相同记录 insert if not exists
MySQL防止重复插入相同记录 insert if not exists
1044 0
|
关系型数据库 MySQL 索引
mysql insert判断记录存不存在 存在即更新不存在即插入 DUPLICATE key update
mysql insert判断记录存不存在 存在即更新不存在即插入 DUPLICATE key update
187 0
|
关系型数据库 MySQL 数据库
插入命令 insert 和查询命令 select 的组合使用|学习笔记
快速学习插入命令 insert 和查询命令 select 的组合使用
961 0
|
弹性计算 关系型数据库 测试技术
PostgreSQL 分区表如何支持多列唯一约束 - 枚举、hash哈希 分区, 多列唯一, insert into on conflict, update, upsert, merge insert
标签 PostgreSQL , 分区表 , native partition , 唯一 , 非分区键唯一 , 组合唯一 , insert into on conflict , upsert , merge insert 背景 PG 11开始支持HASH分区,10的分区如果要支持hash分区,可以通过枚举绕道实现。 《PostgreSQL 9.x, 10, 11 hash分区表 用法举例
2759 0
推荐文章
更多