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,不过后两种暂时不支持。
Sqlite3中的Join的更多相关文章
- SQL中inner join、outer join和cross join的区别
对于SQL中inner join.outer join和cross join的区别简介:现有两张表,Table A 是左边的表.Table B 是右边的表.其各有四条记录,其中有两条记录name是相同 ...
- jQuery中的join方法
和JS 中的JOIN 方法一样,将一数组按照JOIN的参数连接起来.比如: var arr = [ "a", "b", "c", " ...
- Java多线程中的join()方法
一.join()方法介绍 join() 定义在Thread.java中.join()方法把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程.比如在线程B中调用了线程A的join( ...
- Spark 中的join方式(pySpark)
spark基础知识请参考spark官网:http://spark.apache.org/docs/1.2.1/quick-start.html 无论是mapreduce还是spark ,分布式框架的性 ...
- Java并发编程--多线程中的join方法详解
Java Thread中, join()方法主要是让调用该方法的thread在完成run方法里面的部分后, 再执行join()方法后面的代码 例如:定义一个People类,run方法是输出姓名年龄. ...
- SQL点滴2—重温sql语句中的join操作
原文:SQL点滴2-重温sql语句中的join操作 1.join语句 Sql join语句用来合并两个或多个表中的记录.ANSI标准SQL语句中有四种JOIN:INNER,OUTER,LEFTER,R ...
- SQL Server中INNER JOIN与子查询IN的性能测试
这个月碰到几个人问我关于"SQL SERVER中INNER JOIN 与 IN两种写法的性能孰优孰劣?"这个问题.其实这个概括起来就是SQL Server中INNER JOIN与子 ...
- SQL中关于Join、Inner Join、Left Join、Right Join、Full Join、On、 Where区别
前言: 今天主要的内容是要讲解SQL中关于Join.Inner Join.Left Join.Right Join.Full Join.On. Where区别和用法,不用我说其实前面的这些基本SQL语 ...
- SQL语句中 INNER JOIN的用法!
一.SQL语句中 INNER JOIN的用法? 1.INNER JOIN的作用? 可以在两个或者更多的表中获取结果,得出一张新表. [隐式内连接] 表一 car 购物车 表二 user 用户 发现 ...
- MapReduce中的Join
一. MR中的join的两种方式: 1.reduce side join(面试题) reduce side join是一种最简单的join方式,其主要思想如下: 在map阶段,map函数同时读取两个文 ...
随机推荐
- 离线安装Docker社区版详细教程
Docker是一个开源的应用容器引擎,使得开发者可以打包应用以及依赖包到一个轻量级的.可移植的容器中,然后发布到任何支持Docker的平台上.本文将详细介绍如何在离线环境下安装Docker社区版. 1 ...
- Hadoop - 两个Namenode都是standby状态怎么处理
在任意一个standby的NN节点执行 再次访问 ctos01:9870页面
- 大量小文件不适合存储于HDFS的原因
1.小文件过多,会过多占用namenode的内存,并浪费block. - 文件的元数据(包括文件被分成了哪些blocks,每个block存储在哪些服务器的哪个block块上),都是存储在namenod ...
- 标题Spark Mavem项目在本地测试报错 : Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/SparkConf
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/SparkConf at S ...
- 创建一个MCP服务器,并在Cline中使用,增强自定义功能。
MCP介绍 MCP 是一个开放协议,它标准化了应用程序如何向LLMs提供上下文.可以将 MCP 视为 AI 应用程序的 USB-C 端口.正如 USB-C 提供了一种标准化的方法来将您的设备连接到各种 ...
- 【MATLAB习题】牛头刨床机构的运动学分析
1. 数学模型 已知牛头刨床主运动机构各构件的尺寸为: \(l1=125mm,l3=600mm,l4=150mm,l6=275mm,l'6=575mm\),原动件1以匀角速度ω1=1rad/s逆时针转 ...
- vscode运行js文件
一. 首先你需要下载安装 nodejs 下载地址 二. 在 VS Code中有一个插件 code runner,安装后可以直接运行在 node 环境中,然后就可以在 vscode 中输出文件的结果. ...
- jquery submit 解决多次提交
jquery submit 解决多次提交 web应用中常见的问题就是多次提交,由于表单提交的延迟,有时几秒或者更长,让用户有机会多次点击提交按钮,从而导致服务器端代码的种种麻烦. 为了解决这个问题,我 ...
- 探秘Transformer系列之(15)--- 采样和输出
探秘Transformer系列之(15)--- 采样和输出 目录 探秘Transformer系列之(15)--- 采样和输出 0x00 概述 0x01 Generator 1.1 Linear 1.2 ...
- Docker镜像相关-查看镜像信息
主要涉及Docker镜像的ls.tag和inspect子命令. 使用images命令列出镜像 使用docker images或docker image ls命令可以列出本地主机上已有镜像的基本信息,字 ...