1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 多表联合查询 嵌套查询

多表联合查询 嵌套查询

时间:2021-09-08 08:26:12

相关推荐

多表联合查询 嵌套查询

多表联合查询:

条件:连接到一起的两张表,必须存在公共字段(主外键关系的字段就是公共字段)。名字可以不同,但是数据的含义、字段的类型、长度必须一致。(学生表和商品表就没有公共字段,两张表不适合做连接查询)。类型:不同的连接类型,连接后的查询结果不同

(1)内连接:返回两张表记录的交集

(2)外连接:返回任意一张表的全部记录

(3)自连接:一张表自己和自己连接,特殊的表结构

(4)交叉连接:一张表的所有记录分别与另外一张表的所有记录匹配(不会管两张表是否有公共字段,交集。第一张表有4条记录,第二张表有3条记录,交叉连接最后的结果是4*3=12条记录),又称笛卡尔积

内连接:将两张表在公共字段上有相同值的记录连接在一起成为查询结果。

返回两张表记录的交集

select 两张表的字段

from 表1 inner join表2

on 表1.公共字段 = 表2.公共字段

where……

order by……

外连接:左外连接、右外连接、全外连接

左外连接:返回内连接的查询结果+左表的剩余记录

返回左表的全部记录以及右表的相关记录

select 两张表的字段

from 表1 left [outer] join表2

on 表1.公共字段 = 表2.公共字段

where……

order by……

右外连接

返回内连接的查询结果+右表的剩余记录

返回右表的全部记录以及左表的相关记录

select 两张表的字段

from 表1 right [outer] join表2

on 表1.公共字段 = 表2.公共字段

where……

order by……

全外连接

返回内连接的查询结果+左右表的剩余记录

返回两张表的全部记录以及另外一张表的相关记录

嵌套查询:

union:可以连接两个查询,要求,字段的个数必须一样。如果两个查询对应的字段的含义相同,类型一样union还可以合并相同的记录,否则重复呈现

格式:左连接 union 右连接

注:MySQL数据库中不支持使用full join实现全外连接,通过左外连接的查询结果和右外连接的查询结果的组合(union)间接实现全外连接的效果.

一个查询中嵌入另外一个查询外层查询的where条件字段和内层查询的查询字段匹配。

执行效率很低的查询:外层查询从表中每筛选一条记录,内层查询都要重新执行一次

外层查询的where条件如果使用的是比较运算符,内层的查询结果只有一个值;如果内层的查询结果有多个值,外层的条件可以使用in外层查询和内层查询可以是不同的表,但仍属于单表查询,能查出来的字段只能是外层查询表中的字段

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。