让我们以此表为例......
m_tid | m_tid2 | m_hteam_score | m_ateam_score
2 5 69 30
5 2 0 5
我不习惯制作桌子,对不起......
因此,让我们来看看这些数据,现在m_tid
和m_tid2
是TID的列,这些列位于他们自己的单独表格中。
现在我要做的是收集所有分数的团队ID2(或团队id1)的分数......我如何计算两个专栏是否在m_tid
和m_tid2
上{1}}
我没有查询,但我不知道如何对此进行查询。 :(
预期结果将是这样的
m_tid | m_tid_score | m_tid2 | m_tidscore2
5 35 2 69
答案 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