全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 学道会
556 0
2020-07-07
数据分析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指定的列返回查询结果。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群