zoukankan      html  css  js  c++  java
  • mysql 查两个表之间的数据差集

    需要查两个表之间的差集

    首先,想到的是主键直接not in

    select mailbox_id from co_user where mailbox_id not in (select mailbox_id from core_mailbox);

    好吧!这个是可以,但是数据多了的话,想到这个查询的逻辑有点受不住

    于是再改为下面的这样:

    select cu.mailbox_id,cm.mailbox_id from co_user as cu 
        left join core_mailbox as cm
          on cu.mailbox_id = cm.mailbox_id
            where cm.mailbox_id is 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) 中没有匹配的行。

  • 相关阅读:
    node异步转同步(循环)
    三级省市区PCASClass.js插件
    微信公众号基础总结(待更新)
    ES6详解
    webpack配置
    高性能 CSS3 动画
    github上传口令
    纯css3 实现3D轮播图
    优美的js代码,拿去玩~
    关于列举属性用点还是用【】
  • 原文地址:https://www.cnblogs.com/drgcaosheng/p/8118361.html
Copyright © 2011-2022 走看看