使用两列计算两列中的所有胜利?

时间:2016-02-21 00:30:08

标签: mysql

让我们以此表为例......

m_tid | m_tid2 | m_hteam_score | m_ateam_score
  2       5           69             30
  5       2           0               5

我不习惯制作桌子,对不起......

因此,让我们来看看这些数据,现在m_tidm_tid2是TID的列,这些列位于他们自己的单独表格中。

现在我要做的是收集所有分数的团队ID2(或团队id1)的分数......我如何计算两个专栏是否在m_tidm_tid2上{1}}

我没有查询,但我不知道如何对此进行查询。 :(

预期结果将是这样的

  m_tid | m_tid_score | m_tid2 | m_tidscore2
    5         35          2           69

2 个答案:

答案 0 :(得分:1)

如果您想获得每个团队的总分,这里有一个使用相关子查询的方法:

select t.*,
       (coalesce((select sum(s.m_hteam_score) from scores s where s.m_tid = t.tid), 0) +
        coalesce((select sum(s.m_ateam_score) from scores s where s.m_tid2 = t.tid), 0)
       ) as totalscore           
from teams t;

答案 1 :(得分:1)

以下是使用conditional aggregation的其他选项:

select o.id, sum(case when y.m_tid = o.id then y.m_hteam_score 
                 when y.m_tid2 = o.id then y.m_ateam_score
                 else 0 end) score
from othertable o 
    join yourtable y on o.id in (y.m_tid, y.m_tid2)
group by o.id