zoukankan      html  css  js  c++  java
  • Select的深入应用(2)

    首先创建两张表。

     

    全连接

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

     

    或者:

     

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

     

     

    左连接

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

     

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

    一个奇怪的例子:

     

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

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

     

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

     

  • 相关阅读:
    phpinfo mac 和 php -moudle里的不一致(mongodb篇)
    0、服务启动前之日志字段和格式
    P3740 贴海报
    树状数组区间修改and查询和
    P1823 Patrik 音乐会的等待
    西安段素扫描线
    P1903 数颜色
    P1220 关路灯
    [p1559] 运动员最佳匹配问题
    treap数组版
  • 原文地址:https://www.cnblogs.com/ryansunyu/p/4335367.html
Copyright © 2011-2022 走看看