MYSQL 使用 join 查询多个表

gdr39

我正在查询 3 个表,并且可以使用对每个表的单个查询来提取正确的数据,当我将它们放在连接语句中时,返回的结果是不同的。

查询:

select advisor, round(sum(shift),1) AS avail_time from shift_track
where date >= 20180319
group by advisor order by advisor ASC

select advisor, round(sum(time/60),1) AS standard_time from shift_report
where date >= 20180319
group by advisor order by advisor ASC

select advisor, round(sum(time/60),1) AS mobile_time from sr_mobile
where date >= 20180319
group by advisor order by advisor ASC

加入我正在尝试:

SELECT shift_track.advisor, shift_track.date, sum(shift_track.shift) AS 
avail_time, 
sum(shift_report.time/60) AS stand_time,
sum(sr_mobile.time/60) AS mobile_time
from shift_track
inner join shift_report on shift_report.advisor=shift_track.advisor
inner join sr_mobile on sr_mobile.advisor=shift_track.advisor
where shift_track.date =20180319
group BY shift_track.advisor ORDER BY shift_track.advisor ASC

我试图从给定日期的每个表中获取顾问的总时间。加入查询似乎跟随堆栈上的其他查询。

另一种方法是在 PHP 中使用单独的查询,然后将结果添加到表中以显示 - 但我确定我应该能够在单个查询中完成它??

非常感谢任何帮助。

戈登·利诺夫

使用union all

select advisor, sum(avail_time) as avail_time, 
       sum(standard_time) as standard_time, 
       sum(mobile_time) as mobile_time
from ((select advisor, sum(shift) AS avail_time, NULL as standard_time, NULL as mobile_time
       from shift_track
       where date >= 20180319
       group by advisor
      ) union all
      (select advisor, NULL, sum(time/60) AS standard_time, NULL
       from shift_report
       where date >= 20180319
       group by advisor
      ) union all
      (select advisor, NULL, NULL, sum(time/60) AS mobile_time
       from sr_mobile
       where date >= 20180319
       group by advisor
      )
     ) t
group by advisor
order by advisor;

如果您知道所有顾问都在所有三个表中,那么您可以使用join. 但是,这保证了所有顾问都在结果中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用JOIN表进行MYSQL查询

来自分类Dev

使用 JOIN 表的错误 MySQL 查询结果

来自分类Dev

MySQL LEFT JOIN无法使用多个表

来自分类Dev

在多个表上使用JOIN查询

来自分类Dev

MySQL查询-多个JOIN

来自分类Dev

使用JOIN查询的Mysql Pivot /交叉表查询

来自分类Dev

使用WHILE,&& Operator从mysql检索多个查询(不使用JOIN)

来自分类Dev

MySQL-如何改善使用多个LEFT JOIN的复杂查询

来自分类Dev

使用LEFT JOIN和History表的MySQL查询的正确结果

来自分类Dev

MySQL JOIN 3表使用多个列/键

来自分类Dev

在MySQL中使用JOIN从多个表中删除行

来自分类Dev

如何使用 LEFT JOIN 连接多个 mySQL 表?

来自分类Dev

MySQL Join查询从多个表中的产品中获取购物车表中的项目总和

来自分类Dev

使用OR子句的MySQL JOIN查询非常慢

来自分类Dev

使用INNER JOIN的mySQL查询的打印结果

来自分类Dev

使用WHERE子句的MySQL LEFT JOIN查询

来自分类Dev

使用COUNT ON LEFT JOIN进行MySQL查询

来自分类Dev

使用OR子句的MySQL JOIN查询非常慢

来自分类Dev

在MySQL JOIN查询中使用GROUB BY

来自分类Dev

MySQL查询的排序结果(使用join)

来自分类Dev

MySQL:使用join进行多个计数

来自分类Dev

使用INNER JOIN和LEFT JOIN的MySQL查询

来自分类Dev

MySQL从多个表与LEFT JOIN多个

来自分类Dev

使用 sqlalchemy 使用 join 查询多个相关表以生成单个表

来自分类Dev

MySQL自定义联接查询使用多个表

来自分类Dev

在MySQL的where子句中使用多个表更新查询

来自分类Dev

使用案例和子查询MySql更新多个表

来自分类Dev

使用表的join构建一个mysql查询以在symfony中使用

来自分类Dev

MySQL查询多个表