热线电话:13121318867

登录
2020-07-07 阅读量: 776
数据分析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指定的列返回查询结果。

19.5787
1
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子