栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

mysql连接同一张表不同的结果集

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mysql连接同一张表不同的结果集

看来这就是您想要的。我更新了第一个查询以使用正确的ANSI

JOIN
语法,然后对于其他两个查询,通过字段
LEFTJOIN
上的a将它们连接在一起
stats_host

SELECt s.stats_host,  h.host_name,  s.stats_avgcpu,  s.stats_avgmem,  s.stats_avgswap,  s.stats_avgiowait,  s7.7dayavgcpu,  s7.7dayavgmem,  s7.7dayavgswap,  s7.7dayavgiowait,  s30.30dayavgcpu,  s30.30dayavgmem,  s30.30dayavgswap,  s30.30dayavgiowaitFROM sar_stats sINNER JOIN sar_hosts h  on s.stats_host = h.host_idINNER JOIN sar_appgroups a  on h.host_appgroup = a.group_id  and a.group_name = 'Pervasive'INNER JOIN sar_environments e  on h.host_environment = e.env_id  and e.env_name = 'Staging 2'LEFT JOIN(  SELECt s.stats_host,    AVG(s.stats_avgcpu) AS '7dayavgcpu',    AVG(s.stats_avgmem) AS '7dayavgmem',    AVG(s.stats_avgswap) AS '7dayavgswap',    AVG(s.stats_avgiowait) AS '7dayavgiowait'  FROM sar_stats s  WHERe DATE(stats_report_time) BETWEEN DATE_SUB(curdate(), INTERVAL 8 DAY) AND DATE_SUB(curdate(), INTERVAL 1 DAY)  GROUP BY s.stats_host) s7  on s.stats_host = s7.stats_hostLEFT JOIN(  SELECt s.stats_host,    AVG(s.stats_avgcpu) AS '30dayavgcpu',    AVG(s.stats_avgmem) AS '30dayavgmem',    AVG(s.stats_avgswap) AS '30dayavgswap',    AVG(s.stats_avgiowait) AS '30dayavgiowait'  FROM sar_stats s  WHERe DATE(s.stats_report_time) BETWEEN DATE_SUB(curdate(), INTERVAL 31 DAY) AND DATE_SUB(curdate(), INTERVAL 1 DAY)  GROUP BY s.stats_host) s30  on s.stats_host = s30.stats_hostWHERe DATE(s.stats_report_time) =  DATE_SUB(curdate(), INTERVAL 1 DAY);

参见带有演示的SQL Fiddle



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/372363.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号