MySQL 多表查询 "Join"+“case when”语句总结
发布网友
发布时间:2024-09-29 05:38
我来回答
共1个回答
热心网友
时间:2024-10-26 00:49
本部分概述 join 系列与 case when 语句的运用。join 系列包括表加法、Cross join、inner join、left join、right join、full outer join。
表加法通过 union 和 union all 实现,union 去除重复并可能降低效率,而 union all 直接合并结果集。
Cross join 则是笛卡尔积的实现,展示所有可能的组合结果,但实际应用中使用较少。
内连接 inner join 选取两表中共同存在的数据进行联结。
左连接 left join 以左表为主,右表不存在的数据填充为 NULL。
右连接 right join 则是以右表为主,左表不存在的数据填充为 NULL。
全外连接 full outer join 包含了左表和右表中全部数据,未匹配的数据以 NULL 填充。
连接操作后,可以继续使用 group by 和 having 函数对筛选结果进行聚合。
case when 语句在 SQL 查询中广泛使用,用于条件判断和结果的逻辑处理。
case when 的条件执行顺序明确,找到满足条件即退出,适用于汇总分析,如通过引入0,1标记列进行分组统计。
case when 更多用于分段统计,灵活处理不同条件下的数据分类和聚合。