1.数据准备 建两个表格:

 create table student
(idstu int,
namestu varchar(50)
); insert into weiying.student values(1,"张三")(2,"李四"),(3,"王五"),(4,"赵六") create table weiying.score
(
idscore int,
inall int
); insert into weiying.score values(2,198),(3,165),(4,178),(5,159) SELECT * FROM weiying.score;
SELECT * FROM weiying.student;

结果如下:

2.内连接 INNER JOIN ,交集

SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name

  

例子如下:

SELECT *
FROM weiying.student as stu
INNER JOIN weiying.score as sco
ON stu.idstu = sco.idscore

  结果:

3.LEFT JOIN以左表为主,右表为辅,关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。

SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name

  例子:

SELECT *
FROM weiying.student as stu
LEFT JOIN weiying.score as sco
ON stu.idstu = sco.idscore

  结果:

4.3.LEFT JOIN 右表 (table_name2) 为空的情况(is null)

SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
Where table_name2.column_name is null

  例子:

SELECT *
FROM weiying.student as stu
LEFT JOIN weiying.score as sco
ON stu.idstu = sco.idscore
Where sco.idscore is null

  结果:

5. FULL JOIN,只要其中某个表存在匹配,FULL JOIN 关键字就会返回行,去全集时

SELECT column_name(s)
FROM table_name1
FULL JOIN table_name2
ON table_name1.column_name=table_name2.column_name

  例子:

SELECT *
FROM weiying.student as stu
FULL JOIN weiying.score as sco
ON stu.idstu = sco.idscore

  

5. FULL JOIN 去掉中间

SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
Where table_name2.column_name is null
or table_name1.column_name is null

  例子:

SELECT *
FROM weiying.student as stu
FULL JOIN weiying.score as sco
ON stu.idstu = sco.idscore
Where sco.idscore is null
or stu.idstu is null

  

6.RIGHT JOIN以右表为主,左表为辅,关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。

SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name

  例子:

SELECT *
FROM weiying.student as stu
RIGHT JOIN weiying.score as sco
ON stu.idstu = sco.idscore

  结果:

7.RIGHT JOIN 取补集;

SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
where table_name1.column_name is null

  例子:

SELECT *
FROM weiying.student as stu
RIGHT JOIN weiying.score as sco
ON stu.idstu = sco.idscore
where stu.idstu is null

  结果:

   

my sql 下左连接 右链接、内连接等应用,INNER JOIN LEFT JOIN RIGHT JOIN的更多相关文章

  1. PHP左、右、内连接

    left join   :左连接,返回左表中所有的记录以及右表中连接字段相等的记录.right join :右连接,返回右表中所有的记录以及左表中连接字段相等的记录.inner join: 内连接,又 ...

  2. linq to sql 实现左(右)连接,那个方法是对的,该怎么处理

    linq to sql 实现左(右)连接,那个方法是对的var query2 = from tb0 in db.table_0  join tb1 in db.table_1 on table_0.关 ...

  3. SQL中的连接可以分为内连接,外连接,以及交叉连接 。

    SQL中的连接可以分为内连接,外连接,以及交叉连接 . 1. 交叉连接CROSS JOIN 如果不带WHERE条件子句,它将会返回被连接的两个表的笛卡尔积,返回结果的行数等于两个表行数的乘积: 举例, ...

  4. mysql,SQL标准,多表查询中内连接,外连接,自然连接等详解之查询结果集的笛卡尔积的演化

    先附上数据. CREATE TABLE `course` ( `cno` ) NOT NULL, `cname` ) CHARACTER SET utf8 NOT NULL, `ctime` ) NO ...

  5. SQL Fundamentals || 多表查询(内连接,外连接(LEFT|RIGHT|FULL OUTER JOIN),自身关联,ON,USING,集合运算UNION)

    SQL Fundamentals || Oracle SQL语言 一.多表查询基本语法 在进行多表连接查询的时候,由于数据库内部的处理机制,会产生一些“无用”的数据,而这些数据就称为笛卡尔积. 多表查 ...

  6. Atitit.获得向上向下左的右的邻居的方法 软键盘的设计..

    Atitit.获得向上向下左的右的邻居的方法 软键盘的设计.. Left right可以直接使用next prev.. Up down可以使用pix 判断...获得next element的posit ...

  7. SQL Server中的连接查询【内连接,左连接,右连接,。。。】

    在查询多个表时,我们经常会用“连接查询”.连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志. 什么是连接查询呢? 概念:根据两个表或多个表的列之间的关系,从这些表中查询数据 ...

  8. SQL 四种连接查询(内连接、左连接、右连接、全连接)

    下面列出了您可以使用的 JOIN 类型,以及它们之间的差异. (1)     JOIN: 如果表中有至少一个匹配,则返回行(inner join) (2)     LEFT JOIN: 即使右表中没有 ...

  9. 关于数据库的左,右,内,外连接,Union和Union all---------笔记

    1.左连接 select a.filed1,a.filed2,b.filed1 from a (左表) left join b(右表) on a.commonfiled = b.commonfiled ...

随机推荐

  1. C#的SubString(int start,int end);

    C#的SubString(); 例子: string str = "i am a girl"; string temp = str.Substring(2,2);//从索引2开始, ...

  2. java ee 中 Jsp 页面的定时的跳转(数字倒数)

    java ee 中 Jsp 页面的定时的跳转,实现数字倒计时跳转固定页面 1,Servlet类  RefreshServlet类实现 package org.servlet; import java. ...

  3. lucene源码分析(3)facet实例

    简单的facet实例 public class SimpleFacetsExample { private final Directory indexDir = new RAMDirectory(); ...

  4. JavaScript try...catch用法

    一.用法 try...catch语句用了处理代码中可能出现的错误信息,将要进行测试的代码块放在try中,如果代码出现异常,则会被catch捕获 其格式如下: <script> try{ / ...

  5. IDF实验室—不难不易的js加密

    查看源代码 <html> <head> <script src="/tpl/wctf/Public/js/lib/jquery.js">< ...

  6. 基于python的多线程暴破脚本

    搭建了一个本地wordpress,写一个基于多线程异步I/O的暴力破解 1 测试 提交错误的表单数据时,查看请求参数 登录时发送的cookie 2 登录分析 经过多次测试,发现无论是输入正确的密码还是 ...

  7. 添加Access-Control-Allow-Origin主机头, 授权资源跨站访问

    时间 2014-09-24 22:02:48  All by Neil 原文  https://blog.byneil.com/添加access-control-allow-origin主机头-授权资 ...

  8. Jsp&Servlet入门级项目全程实录第3讲

    惯例广告一发,对于初学真,真的很有用www.java1234.com,去试试吧! 1.建立数据表及数据(略) 2.装载驱动,建立数据表 <link rel="stylesheet&qu ...

  9. CentOS7安装后连不上网络无法使用yum

    更新日期:2018年5月31日 笔者今天在本地VMware中安装了CentOS7后,使用yum安装wget的时候发现不能下载,并有下图所示的提示: 于是,笔者就去问度娘,然后就找到了如下各种回复: 1 ...

  10. MyEclipse设置选中单词其它同名单词前景色和背景色

    General->Editors->Annotations->Occurrences