博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql 连接查询 Mysql支持的连接查询有哪些
阅读量:6114 次
发布时间:2019-06-21

本文共 1164 字,大约阅读时间需要 3 分钟。

CREATE TABLE `chx` (

  `id` VARCHAR(20) NOT NULL,
  `name` VARCHAR(50) DEFAULT NULL,
  `name2` CHAR(4) DEFAULT NULL,
  `name3` VARCHAR(4) DEFAULT NULL,
  `score` INT(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8

CREATE TABLE `test` (

  `id` int(11) DEFAULT NULL,
  `age` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

1.Mysql支持的连接查询方式列举如下:

     a:内连接 inner  join也是默认的连接方式

            根据比较方式不同分为如下三种:

                  等值连接:使用等号来作为连接条件

                  自然连接:natural join,通过在两张表里寻找列名和数据类型都相同的字段(长度不管),然后再根据这些相同的字段进行连接(内连接)。并返回所有符合条件

                                      的结果。

                  不等值连接:就是在连接条件中使用除等号以外的其他比较运算符,例如:on c.id between s.XXX and s.XXX;

                                    注意:可以使用using关键字简化连接:

                                    使用条件:1.查询必须是等值连接  2.等值连接中的列必须具有相同的名称和数据类型。

     b:外连接  outer join

            外连接可以分为以下三类:

                  左外连接(left  outer join 或left join):检索结果为满足连接条件的数据行+左表中不满足连接条件的数据行,然后再根据过滤条件过滤即为查询结果(先连接后

                                                                                         过滤)注意:此处过滤条件很容易犯错,一般要以左表的条件进行过滤,不然容易犯错。例如:

                                                                                     SELECT c.*,t.* FROM chx c LEFT JOIN test t ON c.id = t.id WHERE c.`id`= 1和

                                                                                     SELECT c.*,t.* FROM chx c LEFT JOIN test t ON c.id = t.id WHERE t.`id`= 1的结果不一样,

                                                                                      因为当副表t没有等于1的记录而主表c有的话第一条语句是由结果的,而第二条是没有结果的。见下图:

                                                                                     

                  右外连接(right outer join 或right join):与左外连接相反。

                  全外连接(full outer join 或full join):注意:mysql不支持全外连接:除了显示满足连接条件的行外,还显示join两侧表中所有满足检索条件的行。

     c:交叉连接 cross  join

           即两表的所有数据行的笛卡尔积。

          

 

你可能感兴趣的文章
Oracle 将秒转换成日期或者将日期转换成为秒函数
查看>>
mac之ssh记住密码。
查看>>
Redhat OpenShift架构剖析
查看>>
spring--(11)表达式语言(spel)
查看>>
追剧记录
查看>>
Bubble Ball kaufen
查看>>
【Linux总结】Linux命令学习一
查看>>
java基础接口回调的实现
查看>>
linux系统程序安装(二)yum工具1-yum的基本操作
查看>>
String 功能类
查看>>
Websocket 实现扫码二维码登录
查看>>
查看linux服务器基本信息
查看>>
庆山《得未曾有》摘录
查看>>
Maven使用—拷贝Maven依赖jar包到指定目录
查看>>
LAMP架构介绍
查看>>
mysql-5.7.19 winx64解压缩版安装配置教程
查看>>
<转>jquery easyui tab加载内容的几种方法
查看>>
二叉树
查看>>
1.3.2 企业案例 切换到alex用户之后企业故障案例:切换到alex用户之后 出现 -bash-4.1$ 错误...
查看>>
启动和内核管理
查看>>