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. 在Bash中定制炫酷的命令提示符

    如果你使用的是Linux桌面(例如:Fedora或者Ubuntu)的话,在Terminal上使用Bash通常是必须地,但是默认的Bash提示符都很普通.本文将提供简单的Bash脚本(通过定制PS1)定 ...

  2. 关于 AXI协议的学习解释说明

    AXI(Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture ...

  3. rem手机端适配

    <script> document.documentElement.style.fontSize=document.documentElement.clientWidth*100/750+ ...

  4. Spring IOC(DI)

    软件152 余建强 1 什么是IOC IOC—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想.在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不 ...

  5. java date相关

    public static void getPreDay() throws ParseException{     String dateStr="2013-1-1";     D ...

  6. [磁盘空间]lsof处理文件恢复、句柄以及空间释放问题

    曾经在生产上遇到过一个df 和 du出现的结果不一致的问题,为了排查到底是哪个进程占用了文件句柄,导致空间未释放,首先在linux上面,一切皆文件,这个问题可以使用lsof这个BT的命令来处理(这个哈 ...

  7. 总结 vb与数据库的连接方法

    总结 vb与数据库的连接方法 分类:vb数据库 (4672)  (38)  举报  收藏 总结:vb与数据库连接方式,两种分法. 根据是否使用ODBC(驱动程序)来分: 1.有源连接 2.无源连接. ...

  8. JavaScript部分兼容性函数

    1.getElementsByClassName() function getElementsByClassName(node,classname){ if(node.getElementsByCla ...

  9. ORDER BY 高级用法之CASE WHEN

    今天在公司查看一段sql SP代码,发现了一段比较奇怪的代码. 大概长这样子: Select * from tableA ORDER BY ColA , CASE END 小弟才疏学浅,咋一看到代码以 ...

  10. CentOS6.8启动Tomcat无法访问

    今天笔者在CentOS6.8的生产环境上配置Java环境,安装JDK,部署Tomcat,这本来是很简单的一件事,可是最后发现通过IP一直访问不了Tomcat的默认页面. 图1. 无法访问Tomcat默 ...