笔试题一【解答】

        这个题目是在http://topic.youkuaiyun.com/u/20120820/23/C6B16CCF-EE15-47C0-9B15-77497291F2B9.html里面找到的,是一个帖子,查看了跟帖的大牛们的答复,自己也简单想了一下,如果我们只考虑两类表均在一个服务器上存储着,那么我觉得最好的方法应该就是建一个临时表,将第2类表中的30张表的userid去重的插入到临时表中,然后将第一类数据表与该临时表进行比较,就可以~这样算是以空间换取时间吧!这也是我个人的看法,大家有什么更好的法子一定一定要赐教啊啊~~

Step1 建立临时表

          create temprary table tem(userid int)

Step2 将第2类数据库中的30张表的userid分布去重的插入到临时表中

    insert into tem select userid from 库2.table1
    insert ignore into tem select userid from 库2.table2  //INSERT IGNORE 与INSERT INTO的区别就是INSERT IGNORE会忽略数据库中已经存在的数据
    ......
    insert ignore into tem select userid from 库2.table30

Step3 将第1类数据表a与临时表进行比较,得到【a类数据库的多少用户在数据库2中出现过?】

         select  count(*)  from a where a.userid in (select userid from tmp)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值