zoukankan      html  css  js  c++  java
  • Sqlite3中的Join

    1.概述
    sqlite3是一种轻便的数据库,由DDL(Data defination language),DML(Data manipulation language),TCL(Transaction control language)。
    Join主要用于DML中SELECT语句中可选参数FROM后中用于连接两个表以形成一个大的数据表。
    2.join的几种类型
    2.1 cross join
    A cross join B,其中A有m行n列,B有mm行nn列,得到的结果是n+nn列,m*mm行。
    cross join 将A的每行分别跟B的每行进行组合形成结果表的行。
    2.2inner join
    是sqlite3的默认的join,所以A inner join B可以写成A join B,但通常还要外加约束条件,否则返回结果跟cross join一样。外加约束条件有ON(如ON A.a=B.b),USING(如using a或者USING(a,b)需要注意的是a,b必须都是A和B中的列名,并且如果是using(a,b),返回结果必须满足A,B中的a,b都对应相等),注意到 ON返回的列有重复,而Using必须指明需要用的a,b。所以还有一种更简洁的方式NATURAL JOIN,可以自动匹配A,B中所有相同列名,如果值一致就返回。
    3.Outer join
    sqlite3中outer join 与inner join 类似,也需要ON,USING的约束条件,否则也会返回Cross join 的结果。但与inner join 不同的是如果存在不满足条件的行,将保留左边的A的行,对于右边的B的行忽略,这也就是所谓的LEFT OUTER JOIN,需要注意的是不能简写成OUTER JOIN,因为还有RIGHT OUTER 和FULL OUTER JOIN,不过后两种暂时不支持。

    ##### 愿你一寸一寸地攻城略地,一点一点地焕然一新 #####
  • 相关阅读:
    Hbase 性能改进
    HBase总结(十一)hbase Java API 介绍及使用示例
    Java中如何遍历Map对象的4种方法
    Jsp分页实例---假分页
    Jsp分页实例---真分页
    Java正则表达式
    平均时间复杂度为O(nlogn)的排序算法
    常见排序算法--简单排序
    [kuangbin带你飞]专题一 简单搜索
    [kuangbin带你飞]专题一 简单搜索
  • 原文地址:https://www.cnblogs.com/johnyang/p/12573419.html
Copyright © 2011-2022 走看看