学习内容参考来源:www.runoob.com

JOIN准备

--为了方便练习,在数据库中创建演示数据:
create database TEST;
use TEST ;
----------
go
--建立[网站信息表],可以视作基础资料表;
create table website
(id int primary key,
name varchar(255),
url varchar(255),
alexa varchar(255),
country varchar(255)
)
insert into website values
('1','google','www.google.com','1','USA')
,('2','淘宝','www.taobao.com','13','CN')
,('3','菜鸟教程','www.runoob.com','4689','CN')
,('4','微博','weibo.com','20','CN')
,('5','Facebook','www.facebook.com','3','USA')
,('6','stackoverflow','stackoverflow.com','0','IND')
,('7','小米','www.mi.com','50','CN')
select * from website;
----------
--建立[网站日志表],可以视作出入库明细表;
create table access_log
(id int primary key,
site_id int not null,
[count] int not null,
date date not null
)
insert into access_log values
(1,1,45,'2016-05-10')
,(2,3,100,'2016-05-13')
,(3,1,230,'2016-05-14')
,(4,2,10,'2016-05-14')
,(5,5,205,'2016-05-14')
,(6,4,13,'2016-05-15')
,(7,3,220,'2016-05-15')
,(8,5,545,'2016-05-16')
,(9,3,201,'2016-05-17')
,(10,8,299,'2016-05-18')
select * from access_log;

JOIN类型

  • INNER JOIN: 只有左表、右表完全匹配的记录才能被返回;
  • LEFT JOIN:即使右表没有匹配,也会返回左表的所有行;
  • RIGHT JOIN:即时左表没有匹配,也会返回右表的所有行;
  • FULL JOIN:左表、右表不管是否匹配,返回俩表的所有行;

JOIN结果

先看一下演示的2张数据表:

website

access_log

再看一下join后的结果:

INNER JOIN

select * from  website t1 inner join access_log t2 on t1.id= t2.site_id;
-- 只有左表、右表完全匹配的记录才能被返回;

LEFT JOIN

select * from  website t1 left join access_log t2 on t1.id= t2.site_id;
--即使右表没有匹配,也会返回左表的所有行;

RIGHT JOIN

select * from  website t1 right join access_log t2 on t1.id= t2.site_id;
--即时左表没有匹配,也会返回右表的所有行;

FULL JOIN

select * from  website t1 FULL join access_log t2 on t1.id= t2.site_id;
--左表、右表不管是否匹配,返回俩表的所有行;

SQL语法学习记录——JOIN的更多相关文章

  1. sql语法:inner join on, left join on, right join on详细使用方法

    inner join(等值连接) 只返回两个表中联结字段相等的行 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有 ...

  2. sql语法:inner join on, left join on, right join on具体用法

    inner join(等值连接) 仅仅返回两个表中联结字段相等的行 left join(左联接) 返回包含左表中的全部记录和右表中联结字段相等的记录 right join(右联接) 返回包含右表中的全 ...

  3. Hive SQL 语法学习与实践

    Hive 介绍 Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构化的数据文件映射为一张数据库表,并提供 ...

  4. [转载][QT][SQL]sq]学习记录1_模糊搜索

    转载自:sql学习网站: http://www.w3school.com.cn/sql/index.asp 用于模糊搜索数据库的数据 语句:http://www.w3school.com.cn/sql ...

  5. 数据库-SQL语法:LEFT JOIN

    LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行.(补充:left join是一对多的关系,表里所有符合条件的记 ...

  6. SQL语法中的JOIN类型

    这个要弄明白哟..CROSS JOIN, NATURAL, INNER JOIN ,LEFT OUTER JOIN(LEFT JOIN) 等等....带LEFT,RIGHT的必为OUTER,所以OUT ...

  7. SQL Server学习记录之获取每月每季度每年第一天和最后一天

    DECLARE@dtdatetime SET@dt=GETDATE() DECLARE@numberint --1.指定日期该年的第一天或最后一天 --A. 年的第一天 SELECTCONVERT() ...

  8. Python语法学习记录之tuple该如何使用?

    一.介绍 dict 的用法比较简单,它可以存储任意值,并允许是不同类型的值,下面实例来说明: 下面例子中 a 是整数, b 是字符串, c 是数组,这个例子充分说明哈希数组的适用性. 每一个元素是pa ...

  9. Xpath语法学习记录

    高级参考:https://blog.csdn.net/wudaoshihun/article/details/82226122 举例: 1 <!DOCTYPE html> 2 <ht ...

随机推荐

  1. laravel 学习笔记 — 神奇的服务容器

     2015-05-05 14:24 来自于分类 笔记 Laravel PHP开发 竟然有人认为我是抄 Laravel 学院的,心塞.世界观已崩塌. 容器,字面上理解就是装东西的东西.常见的变量.对象属 ...

  2. 透过现象看webpack处理css文件中图片路径转换的具体过程

    webpack是目前使用比较流行的一个前端模块打包器,前端的任何资源都被当成一个模块来处理,如图片.css文件等等.在基于webpack构建的前端项目中,一般都会配置有关css文件处理的规则,这其中也 ...

  3. Percona-XtraDB-Cluster-57 安装操作记录

    一.PXC集群的一些特性 Percona官网服务器位于境外,访问很困难.本次安装使用的是其官网提供的最新版本5.7.23-31.31.1.el7,当前日期为2018.10.10. PXC集群中,存储引 ...

  4. CSS快速入门例子

    CSS入门应用 01-结合方式01 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " ...

  5. NOIP2018PJ游记

    \(NOIP2018\)普及AFO记 178pt,2=,in ZJ_Hangzhou_学军中学 \(Day\) \(0\) 中午就请假回家打模板了 \(Day\) \(1\) \(A.M.8-12\) ...

  6. vuex源码简析

    前言 基于 vuex 3.12 按如下流程进行分析: Vue.use(Vuex); const store = new Vuex.Store({ actions, getters, state, mu ...

  7. 谷歌翻译API

    http://translate.google.cn/translate_a/t?client=t&text=你好&hl=zh-CN&sl=zh-CN&tl=en&am ...

  8. MybatisDao

    一.mybatisDao的编写(原始方式,不用) 1.接口编写 public interface UserDao { public void save(User user); public User ...

  9. POJ_1363_模拟

    题目描述: 列车出入站是一种栈的机制,每组数据给予一个n,进站按1-n顺序,给定一组出站顺序,判断能否实现. 思路: 直接用了queue,in记录当前准备入站的列车编号,out记录已经出站的辆数+1. ...

  10. 使用logstash结合logback收集微服务日志

    因为公司开发环境没有装elk,所以每次查看各个微服务的日志只能使用如下命令 这样子访问日志是并不方便,于是想为每个微服务的日志都用logstash收集到一个文件out中,那以后只要输出这个文件则可查看 ...