• Select的深入应用(2)


    首先创建两张表。

     

    全连接

    全连接:在检索时指定多个表,将每个表用逗号分隔,这样每个表的数据行都和其他表的每行交叉产生所有可能的组合,这样就是一个全连接。所有可能的组和数即每个表的行数的乘积。

     

    或者:

     

    通常需要where子句来作限制条件,否则全连接将产生很多条数据

     

     

    左连接

    左连接:全连接给出FROM子句中所有表都有匹配的行。对于左连接,不仅匹配类似前面的行记录,而且还显示左边的表有而右边的表中无匹配的行。对于这样的行,从右边表选择的列均被显示为NULL。这样,每一匹配的行都从左边的表被选出,而如果右边表有一个匹配的行,则被选中,如果不匹配,行仍然被选中,不过,其中右边相应的列在结果集中均设为NULL。即,LEFT JOIN强制包含左边表的每一行,而不管右边表是否匹配。

     

    上面的结果,即用左边表的每一行与右边表匹配,如果匹配,则选择到结果集中,如果没有匹配,则结果集中,右边表相应的列置为NULL。

    一个奇怪的例子:

     

    因为,在结果的最后两行有似乎你不希望的结果。记住,如果只有ON子句的条件,那么左边表的每一行都会返回,只是如果没有匹配的右边表(虽然本例没有约束右边表的列),则记录集中显示为NULL。

    与IS NULL或者IS NOT NULL是常用组合

     

    检索id值只在左边表出现而不在右边表出现

     

  • 相关阅读:
    Echarts 饼状图 字体重叠问题
    li每三个换行
    计算相差时间、时分秒
    关于下拉框插件、或者框架的下拉框,初始化之后无法联动,或者再次绑定值问题
    使用幕布时,在Session过期后,弹出框加载出登陆的HTML的问题
    swiper 使用心得
    Js 实现 多个tr 点击变色,再点击还原
    js 字符串格式化为时间格式
    Git 操作
    swoole 如何重新编译
  • 原文地址:https://www.cnblogs.com/ryansunyu/p/4335367.html
Copyright © 2020-2023  润新知