SQL语法学习记录——JOIN
2017-11-30 17:07
579 查看
SQL语法学习记录1JOIN
JOIN准备
JOIN类型
JOIN结果
INNER JOIN
LEFT JOIN
RIGHT JOIN
FULL JOIN
LEFT JOIN:即使右表没有匹配,也会返回左表的所有行;
RIGHT JOIN:即时左表没有匹配,也会返回右表的所有行;
FULL JOIN:左表、右表不管是否匹配,返回俩表的所有行;
website
access_log
再看一下join后的结果:
学习内容参考来源:www.runoob.com ↩
JOIN准备
JOIN类型
JOIN结果
INNER JOIN
LEFT JOIN
RIGHT JOIN
FULL JOIN
SQL语法学习记录1——JOIN
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; --左表、右表不管是否匹配,返回俩表的所有行;
学习内容参考来源:www.runoob.com ↩
相关文章推荐
- SQL语法学习记录
- 对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章,通过文氏图 Venn diagrams 解释了SQL的Join。我觉得清楚易懂,转过来。 交差集" cross join 《Linux命令行与shell脚本编程大全
- sql语法:inner join on, left join on, right join on具体用法
- SQL语法学习
- 20110106 学习记录:提高分页性能,用sql过滤每次分页记录数
- SQL DATEDIFF语法及时间函数 Sql 查询当天、本周、本月记录
- SQL的JOIN语法解析(inner join, left join, right join, full outer join的区别)
- spark sql 学习中的几点记录
- sql语法:inner join on, left join on, right join on详细使用方法【补充点】
- Python学习记录——Python基本语法
- sql语法:inner join on, left join on, right join on详细使用方法
- PHP学习记录_基本语法
- SQL的JOIN语法解析(inner join, left join, right join, full outer join的区别)
- SQL 数据库 学习 007 通过一个示例简单介绍什么是字段、属性、列、元组、记录、表、主键、外键 (上)
- SQLite3学习之基本SQL语法使用-wince6.0
- PL/SQL developer基础语法学习(三)之游标
- SQL学习记录
- MySql学习笔记(4)--SQL(DML)语句语法
- SQL语法学习二
- 【Oracle】PL/SQL——基本语法,记录类型和控制流程