多表查询 :通过不同表中具有相同意义的关键字段,将多个表进行连接,查询不同表中的字段信息
连接方式 :内连接和外连接(左连接和右连接)
多表连接的结果通过三个属性决定:
• 方向性:在外连接中写在前边的表为左表、写在后边的表为右表
• 主附关系:主表要出所有的数据范围,附表与主表无匹配项时标记为null,内连接时无主附表之分
• 对应关系:关键字段中有重复值的表为多表,没有重复值的表为一表(一表作为主表可以保证维度的完整性,多表作为主表可以保证度量的准确性)
(维度:用来分组的字段,包括无需分类字段和有序分类字段;度量:用来聚合运算的数值字段,可以进行加减乘除运算)
内连接 :按照连接条件合并两个表,返回满足条件的行。
select 字段1[,…] from 表1[ inner] join 表2 on 表1.key=表2.key;
左连接 :结果中除了包括满足连接条件的行外,还包括左表的所有行。 (左主表右附表)
select 字段1[,…] from 表1 left join 表2 on 表1.key=表2.key;(查询方式:表2里的各条记录与表1里的每一条记录一一对应查询,例:表2里的第一条记录与表1里的每一条记录)
右连接 :结果中除了包括满足连接条件的行外,还包括右表的所有行。 (右主表左附表)
select 字段1[,…] from 表1 right join 表2 on 表1.key=表2.key;(查询方式:表1里的各条记录与表2里的每一条记录一一对应查询,例:表1里的第一条记录与表2里的每一条记录)
联合查询 :把多条select语句的查询结果合并为一个结果集。
被合并的结果集的列数、顺序和数据类型必须完全一致
union去重:select 字段1[,字段2,…] from 表名 union select 字段1[,字段2,…] from 表名;
union all不去重: select 字段1[,字段2,…] from 表名 union all select 字段1[,字段2,…] from 表名;








暂无数据