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 语句的小总结的更多相关文章

  1. 转:画图解释 SQL join 语句

    画图解释 SQL join 语句 我认为 Ligaya Turmelle 的关于SQL联合(join)语句的帖子对于新手开发者来说是份很好的材料.SQL 联合语句好像是基于集合的,用韦恩图来解释咋一看 ...

  2. SQL Join 语句

    SQL Join 语句 SQL 中每一种连接操作都包括一个连接类型和连接条件. 连接类型 决定了如何处理连接条件不匹配的记录. 连接类型 返回结果 inner join 只包含左右表中满足连接条件的记 ...

  3. 画图解释 SQL join 语句

    转:http://blog.jobbole.com/40443/ 本文由 伯乐在线 - 奇风余谷 翻译.未经许可,禁止转载!英文出处:Jeff Atwood.欢迎加入翻译组. 我认为 Ligaya T ...

  4. SQL join 语句 画图果然更容易理解

    我认为 Ligaya Turmelle 的关于SQL联合(join)语句的帖子对于新手开发者来说是份很好的材料.SQL 联合语句好像是基于集合的,用韦恩图来解释咋一看是很自然而然的.不过正如在她的帖子 ...

  5. 图解MYSQL JOIN ON,SQL JOIN 详解,数据库sql join语句

    对于SQL的Join,在学习起来可能是比较乱的.我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚.Codin ...

  6. SQL中合并两个表的JOIN语句

    SQL里有四种JOIN语句用于根据某条件合并两个表: (INNER) JOIN: 交集 LEFT (OUTER) JOIN: 左表数据全包括,右表对应的如果没有就是NULL RIGHT (OUTER) ...

  7. C#中??和?分别是什么意思? 在ASP.NET开发中一些单词的标准缩写 C#SESSION丢失问题的解决办法 在C#中INTERFACE与ABSTRACT CLASS的区别 SQL命令语句小技巧 JQUERY判断CHECKBOX是否选中三种方法 JS中!=、==、!==、===的用法和区别 在对象比较中,对象相等和对象一致分别指的是什么?

    C#中??和?分别是什么意思? 在C#中??和?分别是什么意思? 1. 可空类型修饰符(?):引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空.例如:string str=null; ...

  8. SQL Join连接大小表在前在后的重要性(小表在前提高执行效率)

    引用地址:https://blog.csdn.net/qq_30349961/article/details/82662550 http://blog.sina.com.cn/s/blog_6ff05 ...

  9. 15个初学者必看的基础SQL查询语句

    本文由码农网 – 小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划! 本文将分享15个初学者必看的基础SQL查询语句,都很基础,但是你不一定都会,所以好好看看吧. 1.创建表和数据插 ...

随机推荐

  1. 【Java】java数据库连接中C3P、DBCP、Druid连接池的使用

    使用JDBC的步骤:1.加载数据库驱动2.通过DriverManager获得数据库连接3.通过Connection获得Statement对象4.使用Statement执行SQL语句.5.操作结果集合6 ...

  2. CentOS7安装chrony替代ntp同步时间

    Chrony是一个开源的自由软件,它能保持系统时钟与时钟服务器(NTP)同步,让时间保持精确.它由两个程序组成:chronyd和chronyc:chronyd是一个后台运行的守护进程,用于调整内核中运 ...

  3. mysql分享二-防止sql注入

    一:pdo 提供给预处理语句的参数不需要用引号括起来,驱动程序会自动处理.如果应用程序只使用预处理语句,可以确保不会发生SQL 注入.(然而,如果查询的其他部分是由未转义的输入来构建的,则仍存在 SQ ...

  4. Summary Checklist for Run-Time Kubernetes Security

    Here is a convenient checklist summary of the security protections to review for securing Kubernetes ...

  5. 【emWin】例程十五:触摸校准实例——五点校准法

    介绍: 该例程介绍如何校准4.3寸.7寸液晶显示屏.校准方法如下: 1.进入以下界面,用户可选择是否进入校准界面进行液晶校准 *点击屏幕任何地方可进入校准界面 *不采取任何操作,几秒钟后会进入触摸测试 ...

  6. Go Revel - Testing(测试模块)

    revel提供了一个测试框架来方便的为自己的程序编写功能测试用例. 默认创建的应用骨架附带一个简单的测试用例,这里将它作为起点 ##概览 测试保存在`tests`目录: corp/myapp app/ ...

  7. java.lang.String.regionMatches方法使用

    regionMatches(boolean ignoreCase,int toffset,String other,int ooffset,int len): regionMatches(int to ...

  8. Git -- 搭建git服务器

    在远程仓库一节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改. GitHub就是一个免费托管开源代码的远程仓库.但是对于某些视源代码如生命的商业公司来说,既不想 ...

  9. Linux系统排查4——网络篇

    用于排查Linux系统的网络故障. 网络排查一般是有一定的思路和顺序的,其实排查的思路就是根据具体的问题逐段排除故障可能发生的地方,最终确定问题. 所以首先要问一问,网络问题是什么,是不通,还是慢? ...

  10. PHP最全笔记(五)(值得收藏,不时翻看一下)

    // 删除 方法1:将其值设置为空字符串 setcookie('user[name]', ''); 方法2:将目标cookie设为“已过期”状态. //将cookie的生存时间设置为过期,则生存期限与 ...