• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Mysql连接查询Mysql支持的连接查询有哪些_MySQL

mysql 搞代码 4年前 (2022-01-09) 16次浏览 已收录 0个评论

gaodaima.com

Mysql连接查询Mysql支持的连接查询有哪些

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=utf8CREATE 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):与左外连来2源gaodaima#com搞(代@码&网接相反。

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

c:交叉连接 cross join

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

gaodaima.com


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Mysql连接查询Mysql支持的连接查询有哪些_MySQL

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址