于家崎

2020-07-07   阅读量: 653

Mysql

数据分析MySQL707(下)

扫码加入数据分析学习群

多表查询

通过不同表中具有相同意义的关键字段,将多个表进行连接,查询不同表中的字段信息。

连接方式

内连接和外连接(左连接和右连接)

多表连接的结果通过三个属性决定

  • 方向性:在外连接中写在前边的表为左表、写在后边的表为右表

  • 主附关系:主表要出所有的数据范围,附表与主表无匹配项时标记为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;

右连接

结果中除了包括满足连接条件的行外,还包括右表的所有行。select 字段1[,…] from 表1 right join 表2 on 表1.key=表2.key;

联合查询

把多条select语句的查询结果合并为一个结果集。

• 被合并的结果集的列数、顺序和数据类型必须完全一致

union去重:select 字段1[,字段2,…] from 表名 union select 字段1[,字段2,…] from 表名;

union all不去重: select 字段1[,字段2,…] from 表名 union all select 字段1[,字段2,…] from 表名;

MySQL全连接方法:左连接 union 右连接


SQL执行顺序FROM -> ON -> JOIN -> WHERE -> GROUP BY -> HAVING -> SELECT -> DISTINCT -> UNION -> ORDER BY -> LIMIT


多表连接规则:

确定查询的信息在哪几张表
确定表和表之间的对应关系和主附关系
确定表和表之间的连接条件
一表作为主表可以保证维度的完整性,多表作为主表可以保证度量的准确性。在没有明确表示需要保证维度完整性的情况下,优先保证度量的准确性,所以将度量值所在的表作为主表。度量字段通常存在于多表中,因此通常情况下可以将多表作为主表进行外连接。


多表连接查询:

先对第一个和第二个表按照两表连接查询,然后用用连接后的虚拟结果集和第三个表做连接查询,以此类推,直到所有的表都连接上为止,最终形成一张虚拟结果集,然后根据where条件过滤虚拟结果集中的记录,再根据select指定的列返回查询结果。

添加CDA认证专家【维克多阿涛】,微信号:【cdashijiazhuang】,提供数据分析指导及CDA考试秘籍。已助千人通过CDA数字化人才认证。欢迎交流,共同成长!
19.5787 6 1 关注作者 收藏

评论(0)


暂无数据

推荐课程