文档章节

mysql内连接外连接

wayhk
 wayhk
发布于 2015/05/18 14:03
字数 400
阅读 28
收藏 0

解释名词:

1、内连接(自然连接): 只有两个表相匹配的行才能在结果集中出现

2、外连接: 包括

(1)左外连接(左边的表不加限制)

(2)右外连接(右边的表不加限制)

(3)全外连接(左右两表都不加限制)

3、创建student、score表如下

                                           (student表)

 

 


                                     (score表)

A:内连接sql
         select st.student_name,sc.object,sc.score,st.student_class
         from student st ,score sc where st.student_id=sc.student_id

        执行结果:

这个大家一般都司空见惯了。所以没什么可讲。内连接只是显示满足where后面的条件(st.student_id=sc.student_id)

B:左外连接sql

        select st.student_name,sc.object,sc.score,st.student_class
        from student st  left join score sc on st.student_id=sc.student_id
        执行结果:

左外连接是以左边的表(student st  left)student为主表,score为从表。在查询结果中全部展示主表的信息。
也就出现上图中Tom这个信息不全。因为从表中没有和Tom相匹配的信息,因此才会出现Null值填充。

C:右外连接

      select st.student_name,sc.object,sc.score,st.student_class
      from student st right  join score sc on st.student_id=sc.student_id

      执行结果:

   

   右连接刚好和做连接想法。因此就会出现上图的情况。

 

D:全外连接sql

    1. select st.student_name,sc.object,sc.score,st.student_class
     from student st  left join score sc on sc.student_id=st.student_id
    union
    select st.student_name,sc.object,sc.score,st.student_class
    from student st  RIGHT join score sc on sc.student_id=st.student_id

(本人使用mysql数据库,因为mysql暂时还不支持全外连接full的功能,但是可以用多个left来实现)

  2.select st.student_name,sc.object,sc.score,st.student_class
     from student st  full  join score sc on sc.student_id=st.student_id(此语句针对一般数据库)


本文转载自:http://blog.csdn.net/zlxdream815/article/details/8208509

共有 人打赏支持
下一篇: mysql事务
wayhk
粉丝 1
博文 36
码字总数 17367
作品 0
海淀
程序员
私信 提问
内网配置nat123端口映射,外网连接内网MYSQL数据库

转自NAT123官网: http://www.nat123.com/Pages837.jsp 内网配置nat123端口映射,外网连接内网MYSQL数据库 使用nat123,实现外网直接连接访问内网mysql数据库。 1.明确内网连接mysql数据库地址...

NEWSANP
2014/04/25
0
2
PHP面试之复杂MySQL语句的编写

真题 有A(id,sex, par, cl, c2)、B(id,age,c1,c2)两张表,其中A.id与B.id关联,现在要求写出一条SQL语句,将B中age>50的记录的c1,c2更新到A表中统一记录中的c1,c2字段中。 MySQL的关联update操...

openoter
04/20
0
0
Mysql 多表联合查询效率分析

1 多表连接类型 1. 笛卡尔积(交叉连接) 在MySQL中可以为CROSS JOIN或者省略CROSS即JOIN,或者使用',' 如: SELECT FROM table1 CROSS JOIN table2 SELECT FROM table1 JOIN table2 SELECT *...

晨曦之光
2012/02/21
0
0
关系的连接

连接分类 关系间的连接分为内连接(inner join)和外连接(outer join)。 外连接又可分为:left outer join,right outer join和full outer join。 内连接计算方法: 如果不加条件将会产生笛卡尔...

长平狐
2012/08/28
37
0
MySQL学习笔记-子查询和连接

MySQL学习笔记-子查询和连接 使客户端进入gbk编码方式显示: mysql> SET NAMES gbk; 1.子查询 子查询的定义: 子查询(Subquery)是指出现在其他SQL语句内的SELECT子句。 例如: SELECT * FRO...

谢育政
06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

探索802.11ax

802.11ax承诺在真实条件下改善峰值性能和最差情况。 如何改善今天的Wi-Fi? 在决定如何改进当前版本以外的Wi-Fi时,802.11ac,IEEE和Wi-Fi联盟调查了Wi-Fi部署和行为,以确定更广泛使用的障碍...

linuxprobe16
今天
2
0
使用linux将64G的SDCARD格式化为FAT32

一、命令如下: sudo fdisk -lsudo mkfs.vfat /dev/sda -Isudo fdisk /dev/sda Welcome to fdisk (util-linux 2.29.2). Changes will remain in memory only, until you decide to wri......

mbzhong
今天
4
0
深入理解Plasma(四):Plasma Cash

这一系列文章将围绕以太坊的二层扩容框架,介绍其基本运行原理,具体操作细节,安全性讨论以及未来研究方向等。本篇文章主要介绍在 Plasma 框架下的项目 Plasma Cash。 深入理解Plasma(1):...

HiBlock
昨天
1
0
命令参数的三大风格:Posix、BSD、GNU

今天读到命令行中参数的风格有三大类,即Unix/Posix、BSD、GNU。分别有以下特征: Unix/Posix风格,即命令后的参数,可以分组,便必须以连字符开头,如ps -aux。 BSD风格,即命令后的参数,可...

大别阿郎
昨天
2
0
PHP生成图片验证码

PHP生成图片验证码 /** * PHP生成图片验证码 * Class VerifyImage */class VerifyImage{ // 生成随机字串 private $verifyCode; // 图片对象 private $image; /**...

DrChenXX
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部