SQLite进阶-11.Join
时间:2019-08-11
本文章向大家介绍SQLite进阶-11.Join,主要包括SQLite进阶-11.Join使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
JOIN
JOIN 子句用于结合两个或者多个数据表的数据,基于这些表之间的共同字段。
简单地说,就是先确定一个主表作为结果集,然后,把其他表的行有选择性地“连接”在主表结果集上。
SQL定义了三种类型的连接:
- 交叉连接 - CROSS JOIN
- 内连接 - INNER JOIN
- 外连接 - OUTER JOIN
交叉连接 - CROSS JOIN
交叉连接(CROSS JOIN)把第一个表的每一行与第二个表的每一行进行匹配。如果两个输入表分别有 x 和 y 行,则结果表有 x*y 行。由于交叉连接(CROSS JOIN)有可能产生非常大的表,使用时必须谨慎,只在适当的时候使用它们。
-- 语法
SELECT * FROM TABLE1
CROSS JOIN TABLE2;
-- 实例
-- 创建另一个表 user_info
CREATE TABLE user_info (
U_ID INT PRIMARY KEY NOT NULL,
SEX TEXT,
L_ID INT NOT NULL
)
SELECT U_ID, NAME, SEX FROM link_men CROSS JOIN user_info;
内连接 - INNER JOIN
内连接(INNER JOIN)根据连接谓词结合两个表(table1 和 table2)的列值来创建一个新的结果表。查询会把 table1 中的每一行与 table2 中的每一行进行比较,找到所有满足连接谓词的行的匹配对。当满足连接谓词时,A 和 B 行的每个匹配对的列值会合并成一个结果行。
内连接(INNER JOIN)是最常见的连接类型,是默认的连接类型。INNER 关键字是可选的。
-- 语法
SELECT * FROM table_name
JOIN table_name1 ON condition;
-- 实例
SELECT * FROM link_men
INNER JOIN user_info ON link_men.id = user_info.u_id;
外连接 - OUTER JOIN
外连接(OUTER JOIN)是内连接(INNER JOIN)的扩展。虽然 SQL 标准定义了三种类型的外连接:LEFT、RIGHT、FULL,但 SQLite 只支持 左外连接(LEFT OUTER JOIN)。
外连接(OUTER JOIN)声明条件的方法与内连接(INNER JOIN)是相同的,使用 ON、USING 或 NATURAL 关键字来表达。最初的结果表以相同的方式进行计算。一旦主连接计算完成,外连接(OUTER JOIN)将从一个或两个表中任何未连接的行合并进来,外连接的列使用 NULL 值,将它们附加到结果表中。
-- 语法
SELECT * FROM table_name
OUTER JOIN table_name1 ON condition;
-- 实例
SELECT * FROM link_men
OUTER JOIN user_info ON link_men.id = user_info.u_id;
原文地址:https://www.cnblogs.com/haitao130v/p/11335021.html
- HDU 3782 xxx定律
- HDU 2566 统计硬币
- HDU 2561 第二小整数
- python基础-数据类型与变量
- HDU 2520 我是菜鸟,我怕谁
- HUST 1586 数字排列
- next_permutation(全排列算法)
- Hadoop数据分析平台实战——100HBase和MapReduce整合离线数据分析平台实战——100HBase和MapReduce整合
- Hadoop数据分析平台实战——120Hive Shell命令介绍 01(熟悉Hive略过)离线数据分析平台实战——120Hive Shell命令介绍 01(熟悉Hive略过)
- HUST 1588 辗转数对
- HUST 1584 摆放餐桌
- HUST 1585 排队
- 【QQ/微信个人号变身机器人】炸群+远程监控个人PC的尝试
- HUST 1583 长度单位
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Linux 压缩,解压缩,打包指令
- Linux下使用python脚本执行BCP导入导出操作
- 通用高效字符串匹配--Sunday算法
- Golang fmt Printf 格式化参数手册/详解/说明
- 正则表达式(RegEx)官方手册/权威指南【Python】
- 玩透二叉树(Binary-Tree)及前序(先序)、中序、后序【递归和非递归】遍历
- 如何写出优雅的 Golang 代码
- 检测代码潜在bug和质量之SonarQube
- 基于cephfs搭建高可用分布式存储并mount到本地
- rsync性能终极优化【Optimize rsync performance】
- 你不知道的Golang盲点汇总【持续更新】
- TCP SYN flood洪水攻击原理和防御破解
- 你不知道的Golang map
- go 1.11 模块和版本管理
- Golang Testing单元测试指南