mysql数据库中的多表查询

在数据查询的应用中,我们经常会遇到需要查询的数据不在同一张表的情况,这时就要用到多表查询。
多表查询主要方式为连接查询和联合查询。

连接查询:
连接就是指两个或2个以上的表(数据源)“连接起来成为一个数据源”。
表达式语句:from 表1  [连接方式]  join 表2  [on 连接条件];
连接的结果可以当作一个“表”来使用。常用有以下几种连接方式:
交叉连接:没有on条件的查询,交叉连接所得到的结果通常为笛卡尔积,

内连接:语句表达式:from  表1   join  表2  on  表1.字段1=表2.字段2;含义:找出(过滤)在交叉连接的结果表中的表1的字段1的值等于表2的字段2的值的那些行。
左连接:以左边那张表为主,语句表达式:from  表1  left  [outer]  join   表2   on  连接条件。含义:内连接的结果基础上,加上左边表中所有不符合连接条件的数据,相应本应放右边表的字段的位置就自动补为“null”值。
右连接:以右边那张表为主,语句表达式:from  表1  right[outer]  join   表2   on  连接条件。含义:与左连接相反
全连接:语句表达式:from  表1  full  [outer]  join  表2  on  连接条件;含义:相当于内连接

联合查询:

联合查询就是将两个select语句的查询结果“层叠”到一起成为一个“大结果”。

语句表达式:
(select 语句1)
union
(select 语句2)

注意:两个查询结果的能够进行“联合”的先觉条件是:结果字段数相等。
通常,两个select语句中的字段结果一样,数目一样,结果才有意义

猜你喜欢

转载自www.cnblogs.com/xwenbin/p/10223353.html