sql join 语句的小总结
CREATE TABLE Persons (
id INT PRIMARY KEY,
LastName CHAR() NOT NULL,
FirstName VARCHAR (),
address VARCHAR (),
city VARCHAR () )ENGINE INNODB; INSERT INTO Persons(id,LastName,FirstName, address, city)
VALUES(,'Adams','Joh','Oxford Street','London');
INSERT INTO Persons(id,LastName,FirstName, address, city)
VALUES(,'Bush','George','Fifth Avenue','New York');
INSERT INTO Persons(id,LastName,FirstName, address, city)
VALUES(,'Adams','Thomas','Changan Street','Beijing');
CREATE TABLE Orders(
Id_O INT PRIMARY KEY,
Order_no CHAR() NOT NULL,
Id_P INT NOT NULL ); INSERT INTO Orders(Id_O,Order_no,Id_P) VALUES(,'',);
INSERT INTO Orders(Id_O,Order_no,Id_P) VALUES(,'',);
INSERT INTO Orders(Id_O,Order_no,Id_P) VALUES(,'',);
INSERT INTO Orders(Id_O,Order_no,Id_P) VALUES(,'',);
INSERT INTO Orders(Id_O,Order_no,Id_P) VALUES(,'',);
1, inner join, 连接谓词共有的部分。
SELECT * FROM Persons p INNER JOIN Orders o
ON p.`id` = o.`Id_P`;
2, left join, 左表的特有部分加上两表的共有部分
SELECT * FROM Persons p LEFT JOIN Orders o
ON p.`id` = o.`Id_P`;
3, 左表特有的部分
SELECT * FROM Persons p LEFT JOIN Orders o
ON p.`id` = o.`Id_P` WHERE o.`Id_O` IS NULL; 4, right join , 右表特有部分加上两表的共有部分。
SELECT * FROM Persons p RIGHT JOIN Orders o
ON p.`id` = o.`Id_p`;
5,右表特有部分。
SELECT * FROM Persons p RIGHT JOIN Orders o
ON p.`id` = o.`Id_p` WHERE p.`id` IS NULL; 6, full join 两表的所有结果集
SELECT * FROM Persons p LEFT JOIN Orders o
ON p.`id` = o.`Id_p`
UNION
SELECT * FROM Persons p RIGHT JOIN Orders o
ON p.`id` = o.`Id_P`;
7,左表特定部分的结果集 加上 右表特定的结果集 。
SELECT * FROM Persons p LEFT JOIN Orders o
ON p.`id` = o.`Id_p` WHERE o.`Id_O` IS NULL
UNION
SELECT * FROM Persons p RIGHT JOIN Orders o
ON p.`id` = o.`Id_P` WHERE p.`id` IS NULL
sql join 语句的小总结的更多相关文章
- 转:画图解释 SQL join 语句
画图解释 SQL join 语句 我认为 Ligaya Turmelle 的关于SQL联合(join)语句的帖子对于新手开发者来说是份很好的材料.SQL 联合语句好像是基于集合的,用韦恩图来解释咋一看 ...
- SQL Join 语句
SQL Join 语句 SQL 中每一种连接操作都包括一个连接类型和连接条件. 连接类型 决定了如何处理连接条件不匹配的记录. 连接类型 返回结果 inner join 只包含左右表中满足连接条件的记 ...
- 画图解释 SQL join 语句
转:http://blog.jobbole.com/40443/ 本文由 伯乐在线 - 奇风余谷 翻译.未经许可,禁止转载!英文出处:Jeff Atwood.欢迎加入翻译组. 我认为 Ligaya T ...
- SQL join 语句 画图果然更容易理解
我认为 Ligaya Turmelle 的关于SQL联合(join)语句的帖子对于新手开发者来说是份很好的材料.SQL 联合语句好像是基于集合的,用韦恩图来解释咋一看是很自然而然的.不过正如在她的帖子 ...
- 图解MYSQL JOIN ON,SQL JOIN 详解,数据库sql join语句
对于SQL的Join,在学习起来可能是比较乱的.我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚.Codin ...
- SQL中合并两个表的JOIN语句
SQL里有四种JOIN语句用于根据某条件合并两个表: (INNER) JOIN: 交集 LEFT (OUTER) JOIN: 左表数据全包括,右表对应的如果没有就是NULL RIGHT (OUTER) ...
- C#中??和?分别是什么意思? 在ASP.NET开发中一些单词的标准缩写 C#SESSION丢失问题的解决办法 在C#中INTERFACE与ABSTRACT CLASS的区别 SQL命令语句小技巧 JQUERY判断CHECKBOX是否选中三种方法 JS中!=、==、!==、===的用法和区别 在对象比较中,对象相等和对象一致分别指的是什么?
C#中??和?分别是什么意思? 在C#中??和?分别是什么意思? 1. 可空类型修饰符(?):引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空.例如:string str=null; ...
- SQL Join连接大小表在前在后的重要性(小表在前提高执行效率)
引用地址:https://blog.csdn.net/qq_30349961/article/details/82662550 http://blog.sina.com.cn/s/blog_6ff05 ...
- 15个初学者必看的基础SQL查询语句
本文由码农网 – 小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划! 本文将分享15个初学者必看的基础SQL查询语句,都很基础,但是你不一定都会,所以好好看看吧. 1.创建表和数据插 ...
随机推荐
- 【转】CLR和JIT的理解、.NET反汇编学习
CLR:通用语言运行时(Common Language Runtime)的简称,CLR是.NET框架的核心内容之一,可以把它看为一套标准资源,可以呗任何.NET程序使用.它包括:面向对象的编程模型.安 ...
- mysql数据库自增id重新从1排序的两种方法
mysql默认自增ID是从1开始了,但当我们如果有插入表或使用delete删除id之后ID就会不会从1开始了哦. 使用mysql时,通常表中会有一个自增的id字段,但当我们想将表中的数据清空重新添 ...
- 【SqlServer】SqlServer中的更新锁(UPDLOCK)
UPDLOCK.UPDLOCK 的优点是允许您读取数据(不阻塞其它事务)并在以后更新数据,同时确保自从上次读取数据后数据没有被更改.当我们用UPDLOCK来读取记录时可以对取到的记录加上更新锁,从而加 ...
- connect by prior start with 语句实现树递归查询[百度经验]
TART WITH CONNECT BY PRIOR子句实现递归查询 TART WITH CONNECT BY PRIOR这个语法主要用于查询数据包中的树型结构关系.先看下原始数据时怎么样的吧! 表中 ...
- 当 Visual Studio 扩展遇到错误时
我是遇到了 Github 扩展经常在 Visual Studio 启动时报错,找了一下可以尝试以下方法: 首先卸载插件 然后删除 %LocalAppData%\Microsoft\VisualStud ...
- GSSAPIAuthentication=no
GSSAPI ( Generic Security Services Application Programming Interface) 是一套类似Kerberos 5的通用网络安全系统接口.该接口 ...
- LayaBox IDE 安装后执行项目报错解决方案的一些记录
1.打开IDE后出现“路径xxx未指向有效地tsserver安装.将禁用TypeScript语言功能.”提示: 这是由于杀毒软件吧ts对应的js文件作为病毒删除导致的,一般到杀毒软件的历史界面中将ts ...
- 根据元素类型获取tuple中的元素
最近做cinatra遇到这样的需求,根据一个type来获取对应的第一个元素,需要注意的一个问题是,如果没有这个类型的时候,通过编译期断言提醒使用者,实现代码如下: 1.C++14实现 template ...
- rand()产生随机数 及其和clock()的不同
rand()使用 首先我们要对rand&srand有个总体的看法:srand初始化随机种子,rand产生随机数. 定义函数 : int rand(void) 函数说明 :因为rand的内部实现 ...
- 如何让vue文件中的代码在Sublime Text 3中高亮和智能提示
大家写在Sublime Text 3中编写vue文件时,会发现没有代码智能提示,清一色的黑底白字,不会像html.js一样变成彩色,给我们带来了很大的不便.所以需要安装一款叫作Vue Syntax H ...