在数据查询的应用中,我们经常会遇到需要查询的数据不在同一张表的情况,这时就要用到多表查询。
多表查询主要方式为连接查询和联合查询。
连接查询:
连接就是指两个或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语句中的字段结果一样,数目一样,结果才有意义
mysql数据库中的多表查询
猜你喜欢
转载自www.cnblogs.com/xwenbin/p/10223353.html
今日推荐
周排行