【问题标题】:Join two tables by dates returning data grouped by date按日期连接两个表,返回按日期分组的数据
【发布时间】:2015-11-09 19:06:08
【问题描述】:

我有两个表tbl_live_links 和tbl_total_links 都有两个列dateSubmitted、pid 和linkSubmitted,它们之间没有任何关系。但要求是获取每个月提交的链接总和。

我正在使用这些查询::

    SELECT dateSubmitted
         , sum(`linkSubmitted`) as total 
      FROM `tbl_total_links` 
     where pid = 1
     group 
        by `dateSubmitted` 
     order 
        by `dateSubmitted` DESC 
     limit 0,6

这个查询的结果是::

dateSubmitted total
2015-08-10       20
2015-07-06       56

与

SELECT dateSubmitted, sum(`linkSubmitted`) as live FROM `tbl_live_links` where pid = 1 group by `dateSubmitted` order by `dateSubmitted` DESC limit 0,6

这个查询的结果是::

提交日期 直播

2015-08-10 59

2015-07-06 78

我想要这样的结果

提交日期 全部的 直播

2015-08-10 20 59

2015-07-06 56 78

两个表都可以在特定月份多次提交,但我想要两个表一个月内提交的所有链接的总和

【问题讨论】:

  • 提交日期似乎与我有关
  • 你可以这么说,因为我们必须从两个具有相同日期的表中获取提交的链接总数。

标签: mysql date join group-by


【解决方案1】:

试试这个

SELECT tbl_live_links.dateSubmitted, sum(tbl_live_links.`linkSubmitted`) as live ,sum(tbl_total_links.`linkSubmitted`) as total
     FROM `tbl_total_links`, `tbl_live_links` 
     where pid = 1
     and tbl_live_links.dateSubmitted = tbl_total_links.dateSubmitted
     group 
        by `tbl_live_links.dateSubmitted` 
     order 
    by `tbl_live_links.dateSubmitted` DESC 
 limit 0,6

【讨论】:

  • 不,它不起作用,我已经尝试过了。在这个查询中,假设我们一个月有 2 条记录,那么它将返回该月总和的两倍。
  • 订单子句中的未知列tbl_live_links.dateSubmitted
【解决方案2】:

在这里您可以尝试使用简单的连接条件,希望这可以解决您的问题,我从您的两个语句中获取的连接条件,

select
    dateSubmitted,
    sum(tlink.linkSubmitted) as total,
    sum(llinks.linkSubmitted) as live
from
    tbl_total_links tlink
    inner join tbl_live_links llinks on llinks.pid = tlink.pid
where
  llinks.pid = 1
group by 
    tlink.dateSubmitted,
    llinks.dateSubmitted
order by
    tlink.dateSubmitted,
    llinks.dateSubmitted
    desc
limit 0,6

【讨论】:

    猜你喜欢
    • 2018-12-19
    • 1970-01-01
    • 2017-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-31
    • 2011-02-19
    相关资源
    最近更新 更多