• a left jon b


    即使你认为自己已对 MySQL 的 LEFT JOIN 理解深刻,但我敢打赌,这篇文章肯定能让你学会点东西!

    1.  ON 子句与 WHERE 子句的不同
    2. 一种更好地理解带有 WHERE ... IS NULL 子句的复杂匹配条件的简单方法
    3. Matching-Conditions 与 Where-conditions 的不同

    on: a表一条一条的记录的往下,然后on负责从b表中检索出对应满足条件的记录。

    然后是where子条件匹配语句,就负责从匹配的结果中再过滤结果。

    --

    然后得出的结论就是: sql语句也是慢慢写出来的,把关系先理清楚,然后大致得出结果集,
    然后再在结果集里,过滤筛选,不必一步到位。

    ====

    http://www.oschina.net/question/89964_65912#tags_nav
    ===================================================================

    我们可以想象left join 是这样工作的从左表读出一条,选出所有与on匹配的右表纪录(n条)进行连接, 形成n条纪录(包括重复的行,如:结果1和结果3),如果右边没有与on条件匹配的表,那连接的字段都是null.然后继续读下一条。引申: 我们可以用右表没有on匹配则显示null的规律, 来找出所有在左表,不在右表的纪录, 注意用来判断的那列必须声明为not null的。列值为null应该用is null 而不能用=NULL,

    /////

    sql:
    select id, name, action from user as u
    left join user_action a on u.id = a.user_id
    where a.user_id is NULL
    (注意:1.列值为null应该用is null 而不能用=NULL
    2.这里a.user_id 列必须声明为 NOT NULL 的)

    =======

  • 相关阅读:
    jdbc操作元数据
    jdbc完成增删改查
    jdbc原理
    JDBC快速入门
    DOM_调查问卷效果2
    DOM_radio
    DOM_mail效果
    css基础
    《POSIX多线程程序设计》读书笔记
    《(转载)Bullet物理引擎不完全指南(Bullet Physics Engine not complete Guide)》
  • 原文地址:https://www.cnblogs.com/qinqiu/p/4476164.html
Copyright © 2020-2023  润新知